首頁  >  文章  >  後端開發  >  查看apache並發請求數及其TCP連線狀態

查看apache並發請求數及其TCP連線狀態

伊谢尔伦
伊谢尔伦原創
2016-11-25 15:18:021527瀏覽

這兩天搭建了一組Apache伺服器,每台伺服器4G內存,採用的是prefork模式,一開始設定的連線數太少了,需要較長的時間去回應使用者的請求,後來修改了一下Apache 2.0 .59的設定檔httpd.conf:

# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
StartServers         10
MinSpareServers      10
MaxSpareServers      15
ServerLimit          2000
MaxClients           2000
MaxRequestsPerChild  10000

查看httpd進程數(即prefork模式下Apache能夠處理的並發請求數):
Linux指令:

ps -ef | grep httpd | wc -l

回傳結果範例:
1388
表示並發請求,這個值Apache可根據負載狀況自動調整,我這組伺服器中每台的峰值曾達到2002。

查看Apache的並發請求數及其TCP連線狀態:
Linux指令:

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

回傳結果範例:
LAST_ACK 5
SYN_RECV 30
ESTABLISHED 159775030370030307IT
其中的SYN_RECV表示正在等待處理的請求數;ESTABLISHED表示正常資料傳輸狀態;TIME_WAIT表示處理完畢,等待逾時結束的請求數。

狀態:描述
CLOSED:無連接是活動的或正在進行

LISTEN:伺服器在等待進入呼叫

SYN_RECV:一個連接請求已經到達,等待確認
SYN_SENT:應用已經開始,打開一個連接
ESTABLISHED:正常數據傳輸狀態
FIN_WAIT1:應用說它已經完成
FIN_WAIT2:另一邊已同意釋放
ITMED_WAIT:等待所有分組死掉
CLOSING:兩邊同時嘗試關閉
TIME_WAIT:另一邊已初始化一個釋放掉
LAST_ACK:等待所有分組死掉

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn