查看Apache併發請求數及其TCP鏈接狀態解釋 [轉載--張宴]

這兩天搭建了一組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
tcp




  查看httpd進程數(即prefork模式下Apache可以處理的併發請求數):
  Linux命令:
ide

引用spa

ps -ef | grep httpd | wc -lorm


  返回結果示例:
  1388
  表示Apache可以處理1388個併發請求,這個值Apache可根據負載狀況自動調整,我這組服務器中每臺的峯值曾達到過2002。
server



  查看Apache的併發請求數及其TCP鏈接狀態:
  Linux命令:
blog

引用進程

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


  (這條語句是從新浪互動社區事業部技術總監王老大那兒得到的,很是不錯)
  返回結果示例:
  LAST_ACK 5
  SYN_RECV 30
  ESTABLISHED 1597
  FIN_WAIT1 51
  FIN_WAIT2 504
  TIME_WAIT 1057
  其中的SYN_RECV表示正在等待處理的請求數;ESTABLISHED表示正常數據傳輸狀態;TIME_WAIT表示處理完畢,等待超時結束的請求數。



  關於TCP狀態的變遷,能夠從下圖形象地看出:
  wKiom1Q_csayz8T7AACGHr-AhvE849.gif
  狀態:描述
  CLOSED:無鏈接是活動的或正在進行
  LISTEN:服務器在等待進入呼叫
  SYN_RECV:一個鏈接請求已經到達,等待確認
  SYN_SENT:應用已經開始,打開一個鏈接
  ESTABLISHED:正常數據傳輸狀態
  FIN_WAIT1:應用說它已經完成
  FIN_WAIT2:另外一邊已贊成釋放
  ITMED_WAIT:等待全部分組死掉
  CLOSING:兩邊同時嘗試關閉
  TIME_WAIT:另外一邊已初始化一個釋放
  LAST_ACK:等待全部分組死掉

相關文章
相關標籤/搜索