apache高負載效能調優

2021-09-19 16:02:31 字數 2538 閱讀 8318

先閱讀apache配置優化建議如下,再對相關引數進行調整,觀察伺服器狀況.

apache配置優化建議:

進入/usr/local/apache2/conf/extra 目錄下

apache優化,

經過上述操作後,apache已經能夠正常執行。但是,對於訪問量稍大的站點,apache的這些預設配置是無法滿足需求的,我們仍需調整apache的一些引數,使apache能夠在大訪問量環境下發揮出更好的效能。以下我們對apache配置檔案httpd.conf中對效能影響較大的引數進行一些說明。

(1) timeout 該引數指定apache在接收請求或傳送所請求內容之前的最長等待時間(秒),若超過該時間apache則放棄處理該請求,並釋放連線。該引數預設值為120,推薦設定為60,對於訪問量較大的**可以設定為30或15。

(2) keepalive 該引數控制apache是否允許在乙個連線中有多個請求,預設開啟。但對於大多數論壇型別站點來說,通常設定為off以關閉該支援。

(3) mpm - prefork.c 在預設情況下apache使用prefork(程序)工作模式,可以說這部分的引數設定是對apache效能影響的核心和關鍵。使用者可以在配置文件中找到以下配置段:

startservers         5

minspareservers      5

maxspareservers     10

maxclients          15

maxrequestsperchild  0

複製**

這就是控制apache程序工作的配置段,為了更好的理解上述配置中的各項引數,下面讓我們先了解一下apache是如何控制程序工作的。我們知道,在unix系統中,很多服務(service)的守護程序(daemon)在啟動時會建立乙個程序以準備應答可能的連線請求,服務即進入了埠監聽狀態,當乙個來自客戶端(client)的請求被傳送至服務所監聽的埠時,該服務程序即會處理該請求,在處理過程中,該程序處於獨佔狀態,也就是說如果此時有其他請求到達,這些請求只能「排隊」等待當前請求處理完成且服務程序釋放。這樣就會導致越來越多的請求處於佇列等待狀態,實際表現就是該服務處理能力非常低下。apache使用prefork模式很好的解決了這一問題。下面我們來看看apache實際上是如何高效率工作的。

當apache啟動時,apache會啟動startspareservers個空閒程序同時準備接收處理請求,當多個請求到來時,starspareservers進行會越來越少,當空閒程序減少到minspareservers個時,apache為了能夠繼續有充裕的程序處理請求,它會再啟動startsservers個程序備用,這樣就大大減少了請求佇列等待的可能,使得服務效率提高,這也是為什麼叫做pre-fork的原因;讓我們繼續跟蹤apache的工作,我們假設apache已經啟動了200個程序來處理請求,理論上來說,此時apache一共有205個程序,而過了一段時間,假設有100個請求都得到了apache的響應和處理,那麼此時這100個程序就被釋放成為空閒程序,那麼此時apache有105個空閒程序。而對於服務而言,啟動太多的空閒程序時沒有任何意義的,反而會降低伺服器的整體效能,那麼apache真的會有105個空閒程序麼?當然不會!實際上apache隨時在檢查自己,當發現有超過maxspareservers個空閒程序時,則會自動停止關閉一些程序,以保證空閒程序不過過多。說到這裡,使用者應該對apache的工作方式有了一定的了解,如果想獲得更多更詳細的說明請參閱apache手冊文件。

我們還有兩個引數沒有介紹:maxclients和maxrequestperchild;maxclients指定apache在同一時間內最多允許有多少客戶端能夠與其連線,如果超過maxclients個連線,客戶端將會得到乙個「伺服器繁忙」的錯誤頁面。我們看到預設情況下maxclients設定為15,這對一些中型站點和大型站點顯然是遠遠不夠的!也許您需要同時允許512個客戶端連線才能滿足應用需求,好吧,那麼就讓我們把maxclients修改為512,儲存httpd.conf並退出,重啟apache,很遺憾,在重啟過程當中您看到了一些錯誤提示,apache重啟失敗。錯誤提示中告訴您maxclients最大只能設定為256,相信您一定很失望。不過不要沮喪,apache作為世界一流的web server一定不會如此單薄的!在預設情況下,maxclients的確只能設定為不超過256的整數,但是,如果您有需要完全可以隨意定製,此時就需要使用serverlimit引數來配合使用,簡單的說serverlimit就像是水桶,而maxclients就像是水,您可以通過更換更大的水桶(將serverlimit設定為乙個較大值)來容納更多的水(maxclients),但要注意,maxclients的設定數值是不能大於serverlimit的設定數值的!

注:maxclents < serverlimit

好了,解釋了這麼多,讓我們看看經過修改後perfork.c配置段的推薦配置:

startservers         5

minspareservers      5

maxspareservers     10

serverlimit       1024

maxclients        768

maxrequestsperchild  0

完成了上述對apache的調整,apache已經獲得了較大的效能改善

apache高負載效能調優

先閱讀apache配置優化建議如下,再對相關引數進行調整,觀察伺服器狀況.apache配置優化建議 進入 usr local apache2 conf extra 目錄下 apache優化,經過上述操作後,apache已經能夠正常執行。但是,對於訪問量稍大的站點,apache的這些預設配置是無法滿足...

apache負載調優

apache負載調優 watch n 1 d pgrep httpd wc l apache動態檢視連線數 ps aux grep httpd wc l ps aux grep v grep awk httpd end 檢視apache占用記憶體平均數 vim etc sysctl.conf 編輯檔...

Apache 效能調優 參考篇

1 記憶體 適當選用適合大小的記憶體,保證谷峰負載時,有足夠的記憶體使用 2 使用ab測試apache效能 使用ab的缺點 不能更真實的模仿使用者的操作。3 調節保持連線的設定 keepalive on 在單一連線時進行多個請求 maxkeepaliverequests 200 單一連線時間可以允許...