Apache mod_status 是否對調整 Apache 配置有任何見解?
Apache mod_status 輸出是否對調整 Apache prefork 配置有任何見解?
例如,使用 Apache 的 mod_status,我發現
- 我的伺服器平均每秒收到 3 個請求,範圍是 2-10 個請求/秒,一個峰值是 28 個請求/秒。
- 我的伺服器目前有 7 個平均請求正在處理,範圍是 1-86。
- 我的伺服器平均有 10 個空閒工作人員,範圍是 0-99。
這是否可以深入了解我的 Apache prefork 設置應該是什麼 - 特別是 MinSpareServers、MaxSpareServers、MaxClients 和 MaxRequestsPerChild?還是這些數據無關?
您需要確保將 MaxClients 設置為高於典型峰值的舒適值(在您的情況下聽起來像是 10,但您曾經看到一次爆發到 86,所以可能是 150 以留出一些喘息空間,以防萬一更大的爆發)。這樣,如果發生這種情況並且使用者體驗緩慢,您就不會用完連接。確保您的伺服器上有足夠的 RAM 來支持您設置的任何 MaxClients 值(滿負載下所需的 RAM = 每個 Apache 程序使用的 RAM 乘以 MaxClients)。
如果您不介意佔用 RAM,您可以告訴 Apache 保持更多伺服器執行,以便通過將 MinSpareServers 增加到等於典型峰值的數字來在更多請求進入時不需要分叉(創建)它們(或附近的某個地方)。此外,如果您不介意佔用 RAM,您可以將 MaxSpareServers 設置為 MaxClients,然後讓 Apache 決定是否保留這些額外的備件是個好主意。它們被保留的副作用將是性能提升。需要注意的是,即使您認為不需要 RAM,作業系統也會使用未使用的 RAM 來通過執行記憶體等操作來提高性能,因此在佔用 RAM 時要考慮這一點。
MaxRequestsPerChild 與其說是性能問題,不如說是為了幫助防止意外記憶體洩漏之類的事情(請參閱http://httpd.apache.org/docs/2.2/mod/mpm_common.html#maxrequestsperchild)。