大家好,小編來為大家解答以上問題。詳解apache中并發控制參數prefork理解和調優很多人還不知道,現在讓我們一起來看看吧! 一個apache有linux下的并發不是很高的,大約到3K的樣子,普通的服務器都會不同程度的出現問題.apache有關并發控制主要是 prefork和worker二個其中一個來控制.我們可以使用httpd -l來確定當前使用的MPM是prefork.c,還是Worker.c.下面是apache中有關prefork的配置.下面是我優化過的參數. #有這個參數就不必像apache1一樣修改源碼才能修改256客戶數的限制,聽講要放到最前面才會生效,2000是這個參數的最大值 ServerLimit 2000 #指定服務器啟動時建立的子進程數量,prefork默認為5。 StartServers 25 #指定空閑子進程的最小數量,默認為5。如果當前空閑子進程數少于MinSpareServers ,那么Apache將以最大每秒一個的速度產生新的子進程。此參數不要設的太大。 MinSpareServers 25 #設置空閑子進程的最大數量,默認為10。如果當前有超過MaxSpareServers數量的空閑子進程,那么父進程將殺死多余的子進程。此參數 不要設的太大。如果你將該指令的值設置為比MinSpareServers小,Apache將會自動將其修改成"MinSpareServers+1"。 MaxSpareServers 50 #限定同一時間客戶端最大接入請求的數量(單個進程并發線程數),默認為256。任何超過MaxClients限制的請求都將進入等候隊列,一旦一個鏈接被釋放,隊列中的請求將得到服務。要增大這個值,你必須同時增大ServerLimit 。 MaxClients 2000 #每個子進程在其生存期內允許伺服的最大請求數量,默認為10000.到達MaxRequestsPerChild的限制后,子進程將會結束。如果MaxRequestsPerChild為"0",子進程將永遠不會結束。 MaxRequestsPerChild 10000 將MaxRequestsPerChild設置成非零值有兩個好處: 1.可以防止(偶然的)內存泄漏無限進行,從而耗盡內存。 2.給進程一個有限壽命,從而有助于當服務器負載減輕的時候減少活動進程的數量。 工作方式: 一個單獨的控制進程(父進程)負責產生子進程,這些子進程用于監聽請求并作出應答。Apache總是試圖保持一些備用的 (spare)或者是空閑的子進程用于迎接即將到來的請求。這樣客戶端就不需要在得到服務前等候子進程的產生。在Unix系統中,父進程通常以root身 份運行以便邦定80端口,而 Apache產生的子進程通常以一個低特權的用戶運行。User和Group指令用于設置子進程的低特權用戶。運行子進程的用戶必須要對它所服務的內容有 讀取的權限,但是對服務內容之外的其他資源必須擁有盡可能少的權限。 我們調優常常要查看httpd進程數(即prefork模式下Apache能夠處理的并發請求數): #ps -ef | grep httpd | wc -l 出現的結果,就是當前Apache能夠處理的多少個并發請求,這個值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:等待所有分組死掉 可以使用Linux下的webbench來作壓力測試. 以上詳解apache中并發控制參數prefork理解和調優就是小編為大家收集整理的全部內容了,希望對大家有所幫助。如果您喜歡這篇文章,可以收藏或分享給您的小伙伴們吧!歡迎持續關注我們的后續更新。 |
免責聲明:本站部分文章和圖片均來自用戶投稿和網絡收集,旨在傳播知識,文章和圖片版權歸原作者及原出處所有,僅供學習與參考,請勿用于商業用途,如果損害了您的權利,請聯系我們及時修正或刪除。謝謝!
始終以前瞻性的眼光聚焦站長、創業、互聯網等領域,為您提供最新最全的互聯網資訊,幫助站長轉型升級,為互聯網創業者提供更加優質的創業信息和品牌營銷服務,與站長一起進步!讓互聯網創業者不再孤獨!
掃一掃,關注站長網微信