基準(zhǔn)測試
影響相應(yīng)時間的五個方面
- 地理位置和網(wǎng)絡(luò)問題
- 響應(yīng)大小
- 代碼處理
- 瀏覽器行為
- web服務(wù)器配置
Keep-Alive設(shè)置
持久連接
服務(wù)器可以打開特定數(shù)量的連接锅棕,并可以保持這些連接處于打開狀態(tài)以滿足其他出入的請求。這樣便不再需要Web服務(wù)器為每個傳入的請求打開一個連接唆铐,滿足請求后再關(guān)閉哲戚。
在http早期奔滑,每個http請求都要求打開一個tpc socket連接艾岂,并且使用一次之后就斷開這個tcp連接。
使用keep-alive可以改善這種狀態(tài)朋其,即在一次TCP連接中可以持續(xù)發(fā)送多份數(shù)據(jù)而不會斷開連接王浴。通過使用keep-alive機(jī)制,可以減少tcp連接建立次數(shù)梅猿,也意味著可以減少TIME_WAIT狀態(tài)連接氓辣,以此提高性能和提高h(yuǎn)ttpd服務(wù)器的吞吐率(更少的tcp連接意味著更少的系統(tǒng)內(nèi)核調(diào)用,socket的accept()和close()調(diào)用)。
但是袱蚓,keep-alive并不是免費的午餐,長時間的tcp連接容易導(dǎo)致系統(tǒng)資源無效占用钞啸。配置不當(dāng)?shù)膋eep-alive,有時比重復(fù)利用連接帶來的損失還更大。所以体斩,正確地設(shè)置keep-alive timeout時間非常重要梭稚。