來源:不言 發(fā)布時間:2018-12-15 16:11:50 閱讀量:928
這篇文章主要介紹了關(guān)于如何解決PHP的高并發(fā)和大流量的問題,有著一定的參考價值,現(xiàn)在分享給大家,有需要的朋友可以參考一下
基礎(chǔ)知識
TFS : 吞吐量 (吞吐量是指系統(tǒng)在單位時間內(nèi)處理請求的數(shù)量)
RT : 響應(yīng)時間 (從請求發(fā)出到收到響應(yīng)時間)
并發(fā)數(shù) : 在一段時間內(nèi)同時訪問站點的用戶數(shù)
QPS : 每秒查詢率 (每秒請求或者相應(yīng)數(shù),在互聯(lián)網(wǎng)領(lǐng)域,值每秒相應(yīng)請求數(shù)(值HTTP請求))
PV : page view 頁面訪問量
UV : user view 用戶訪問量
一般來說,日pv(訪問量)大于1000萬就可以算做高并發(fā)
日網(wǎng)站帶寬 = PV / 統(tǒng)計時間 (秒) * 頁面平均大小(KB) * 8
壓力測試
推薦使用apache自帶的壓力測試工具 ab
使用方法:進入apache目錄,在當前目錄下運行(windows):
1 |
|
請求結(jié)束后我們可以得到數(shù)據(jù):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
|
優(yōu)化
隨著QPS增長,每個階段需要做不同的優(yōu)化措施,優(yōu)化的方案也與硬件,網(wǎng)絡(luò)條件相關(guān)
QPS達到50
無需優(yōu)化
QPS達到100(數(shù)據(jù)庫層)
假設(shè)數(shù)據(jù)庫每次查詢0.01S,每個頁面只有一個sql查詢,那么此時已經(jīng)是數(shù)據(jù)庫極限
優(yōu)化措施:數(shù)據(jù)庫緩存,數(shù)據(jù)庫負載均衡,redis,memcache
QPS達到800 (網(wǎng)絡(luò)帶寬)
假設(shè)每個頁面只有10K,那么在800QPS下,帶寬已經(jīng)耗盡
優(yōu)化措施:CDN加速 負載均衡
QPS達到1000
優(yōu)化措施:靜態(tài)頁面
流量優(yōu)化:
防盜鏈處理
前端優(yōu)化:
減少HTTP請求
添加異步請求
啟用瀏覽器緩存
服務(wù)器優(yōu)化:
頁面靜態(tài)化
并發(fā)處理
隊列處理
數(shù)據(jù)庫優(yōu)化:
數(shù)據(jù)庫緩存
分庫分表,分區(qū)操作
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,更多相關(guān)內(nèi)容請關(guān)注PHP中文網(wǎng)!