访问量指标:
- PV(Page View):页面访问量,即页面浏览量或点击量,用户每次刷新即被计算一次;可以统计服务一天的访问日志得到;
- UV(Unique Visitor):独立访客;可以统计服务一天的访问日志并根据用户的唯一标识去重得到访问站点的用户数;
- DAU、MAU(Daily/Month Active User):日/月活跃用户量;可以统计一日/一月,登录或使用了某个产品的用户数(去除重复登录的用户),与UV概念相似。
系统吞吐量性能指标:
- QPS(Queries Per Second):每秒查询率,是一台服务器每秒能够响应的查询次数,基本类似于TPS,但是不同的是,对于一个页面的一次访问,形成一个TPS。但一次页面请求,可能产生多次对服务器的请求,服务器对这些请求,就可计入QPS之中,一般来讲QPS>=TPS;
- TPS(Transactions Per Second):每秒事务数,一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数;包括用户请求服务器、服务器内部处理和服务器返回给用户三个过程,每秒完成这三个过程几次,TPS就是几;
- RT(Response Time):响应时间,指系统对请求作出响应的时间,一般取平均响应时间;
- 并发数:指系统同时能处理的请求数量,同样反应了系统的负载能力;这个数值可以分析机器1s内的访问日志数量来得到。
指标间的关系与计算公式:
- QPS(TPS)= 并发数/RT
- QPS与PV之间的关系:
- 原理:每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间
- 公式:( 总PV数 * 80% ) / ( 每天秒数 * 20% ) = 峰值时间每秒请求数(QPS)
- 机器:峰值时间每秒QPS / 单台机器的QPS = 需要的机器 例子:每天100万PV在单台服务器上,峰值QPS是多少? (1000000*0.8)/(86400*0.2)=46(QPS)
普通的Web系统,关于并发量与请求数的关系大概计算如下:
- 单台服务器最高并发数2000,这是业内的大牛通过各种架构/优化/技术实现的,普通能做到200并发;如果业务复杂度导致无法实现200并发(如:复杂业务,几十个流程),那么 我们会根据实际项目情况采取其他技术手段来提高服务器集群的响应能力,如缓存memcache, 更高速的数据库mongo/redis,动静分离CDN,数据库分库/分表,关键节点java代替php等;
- 单个请求的处理时间, 理论上的极值为70ms(这是内网web服务器访问数据库服务器的网络时间), 普通可以在500ms内完成一次请求(不包括用户到Web服务器的网络时间),考虑网络带宽,一个页面最高2s响应时间是可以接受的;
- 根据以上计算200/2=100(TPS)
- 每小时可响应100*3600/10000=36万请求;每天可响应36*24=864万请求;
- 使用负载均衡后,通常负载均衡服务器会是2/4/8/16这个规模 , 通常不会超过16,每天最高支持大概1.3亿访问量。