CentOS下對Apache效能調試

來源:互聯網
上載者:User

CentOS下對Apache效能調試

查看Apache的並發請求數及其TCP串連狀態:

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表示處理完畢,等待逾時結束的請求數。

狀態:描述
CLOSED:無串連是活動的或進行中
LISTEN:伺服器在等待進入呼叫
SYN_RECV:一個串連請求已經到達,等待確認
SYN_SENT:應用已經開始,開啟一個串連
ESTABLISHED:正常資料轉送狀態
FIN_WAIT1:應用說它已經完成
FIN_WAIT2:另一邊已同意釋放
ITMED_WAIT:等待所有分組死掉
CLOSING:兩邊同時嘗試關閉
TIME_WAIT:另一邊已初始化一個釋放
LAST_ACK:等待所有分組死掉

查看當前工作模式 httpd -l

prefork.c 看是否有它

控制最大串連數的MaxClients ,因此可以嘗試配置為:

<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 3
MaxSpareServers 5
MaxClients 50
MaxRequestsPerChild 100
</IfModule>

注意,MaxClients預設最大為250,若要超過這個值就要顯式設定ServerLimit,且ServerLimit要放在MaxClients之前,值要不小於MaxClients,不然重啟httpd時會有提示。

重 啟httpd後,通過反覆執行pgrep httpd|wc -l 來觀察串連數,可以看到串連數在達到MaxClients的設值後不再增加,但此時訪問網站也很流暢,那就不用貪心再設定更高的值了,不然以後如果網站訪 問突增不小心就會耗光伺服器記憶體,可根據以後訪問壓力趨勢及記憶體的佔用變化再逐漸調整,直到找到一個最優的設定值。

(MaxRequestsPerChild不能設定為0,可能會因記憶體泄露導致伺服器崩潰)

參考:

apache的參數設定

Apache 2.0效能最佳化-MPM的選擇與配置

如何避免apache的httpd進程佔用比較多的記憶體

對apache中並發控制參數prefork理解和調優

附:

即時檢測HTTPD串連數:

watch -n 1 -d ‘pgrep httpd|wc -l’

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.