QPS:每秒响应请求数(指HTTP请求):每秒钟请求或者查询的数量,在互联网领域,指每秒响应请求数(指HTTP请求);
吞吐量:单位时间内处理的请求数量(一般由QPS与并发数决定)
响应时间:从请求发出到收到响应花费的时间。例如系统处理一个HTTP请求须要100ms,这个100ms就是系统的响应时间
PV:综合浏览量(Page View),即页面浏览量或者点击量,一个访客在24小时内访问的页面数量;同一我的浏览你的网站同一页面,只记做一次PV
UV:独立访客(UniQue Visitor),即必定时间范围内相同访客屡次访问网站,只计算为1个独立访客
带宽:计算带宽大小需关注两个指标,峰值流量和页面的平均大小
日网站带宽=PV/统计时间(换算到秒)*平均页面大小(单位KB)*8
峰值通常是平均值的倍数,根据实际状况来定
峰值每秒请求数(QPS)=(总PV数*80%)/(6小时秒数*20%)前端
峰值通常是平均值的倍数,根据实际状况来定nginx
通常了解单台服务器可以承受的QPS是多少ajax
[root@localhost ~]# ab -c 100 -n 5000 http://192.168.52.6/index This is ApacheBench, Version 2.3 <$Revision: 1430300 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking 192.168.52.6 (be patient) Completed 500 requests Completed 1000 requests Completed 1500 requests Completed 2000 requests Completed 2500 requests Completed 3000 requests Completed 3500 requests Completed 4000 requests Completed 4500 requests Completed 5000 requests Finished 5000 requests Server Software: Apache Server Hostname: 192.168.52.6 Server Port: 80 Document Path: /index Document Length: 1917 bytes Concurrency Level: 100 Time taken for tests: 22.049 seconds Complete requests: 5000 Failed requests: 3 (Connect: 0, Receive: 0, Length: 3, Exceptions: 0) Write errors: 0 Total transferred: 11438133 bytes HTML transferred: 9579249 bytes Requests per second: 226.77 [#/sec] (mean) Time per request: 440.972 [ms] (mean) Time per request: 4.410 [ms] (mean, across all concurrent requests) Transfer rate: 506.61 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 1 9.0 0 125 Processing: 1 419 1614.8 68 17425 Waiting: 0 412 1601.8 68 17425 Total: 1 420 1614.8 72 17427 Percentage of the requests served within a certain time (ms) 50% 72 66% 125 75% 163 80% 193 90% 399 95% 987 98% 7019 99% 9085 100% 17427 (longest request)
随着QPS的增加,每一个阶段须要根据实际状况来进行优化,优化的方案也与硬件条件、网络带宽息息相关。chrome
|||-begin数据库
假设关系型数据库的每次请求在0.01秒完成;apache
假设单页面只有一个SQL查询,那么100QPS意味着1秒钟完成100次请求,可是此时咱们并不能保证数据库查询能完成100次后端
|||-end浏览器
|||-begin缓存
假设咱们使用百兆带宽,意味着网站出口的实际带宽是8M左右tomcat
假设每一个页面只有10K,在这个并发条件下,百兆带宽已经吃完
|||-end
|||-begin
假设使用Memcache缓存数据库查询数据,每一个页面对Memcache的请求远大于直接对DB的请求
Memcache的悲观并发数在2w左右,但有可能在以前内网带宽已经吃光,表现出不稳定
|||-end
|||-begin
这个级别下,文件系统访问锁都成为了灾难
|||-end
流量优化 方法
防盗链处理
前端优化 方法
减小HTTP请求
添加异步请求:好比ajax
启用浏览器缓存和文件压缩
CDN加速
创建独立图片服务器
服务端优化 方法
页面静态化
并发处理
队列处理
数据库优化 方法
数据库缓存
分库分表、分区操做
读写分离
负载均衡
Web服务器优化 方法
负载均衡
95 requests I 409 KB transferred I 718 KB resources l Finish:3.06s l DOMContentloaded:910 ms I Load:1.65s