查看Apache併發鏈接數及其TCP鏈接狀態

查看Apache併發鏈接數及其TCP鏈接狀態【轉】

做者:張宴linux

這兩天搭建了一組Apache服務器,每臺服務器4G內存,採用的是prefork模式,一開始設置的鏈接數太少了,須要較長的時間去響應用戶的請 求,後來修改了一下Apache 2.0.59的配置文件httpd.conf: 服務器

Httpd.conf代碼   收藏代碼
  1. # prefork MPM  
  2. # StartServers: number of server processes to start  
  3. # MinSpareServers: minimum number of server processes which are kept spare  
  4. # MaxSpareServers: maximum number of server processes which are kept spare  
  5. # MaxClients: maximum number of server processes allowed to start  
  6. # MaxRequestsPerChild: maximum number of requests a server process serves  
  7.   
  8. StartServers         10  
  9. MinSpareServers      10  
  10. MaxSpareServers      15  
  11. ServerLimit          2000  
  12. MaxClients           2000  
  13. MaxRequestsPerChild  10000   

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

Linux命令:tcp

Linux代碼   收藏代碼
  1. ps -ef | grep httpd | wc -l  

返回結果示例:ide

1388spa

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

查看Apache的併發請 求數及其TCP鏈接狀態:server

Linux命令:blog

Linux代碼   收藏代碼
  1. 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狀態的變遷,能夠看出:

狀態:描述

CLOSED:無鏈接是活動的或正在進行

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

SYN_RECV:一個鏈接請求已經到達,等待確認

SYN_SENT:應用已經開始,打開一個鏈接

ESTABLISHED:正常 數據傳輸狀態

FIN_WAIT1:應用說它已經完成

FIN_WAIT2:另外一邊已贊成釋放

ITMED_WAIT:等 待全部分組死掉

CLOSING:兩邊同時嘗試關閉

TIME_WAIT:另外一邊已初始化一個釋放

LAST_ACK:等 待全部分組死掉

相關文章
相關標籤/搜索