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