Debian

為 Apache 2 工作伺服器池管理設置什麼值?

  • November 19, 2011

我最近從 Apache 2.2 prefork 切換到 Apache 2.2 worker,但我不知道從什麼開始會是一個很棒的 MPM 配置。在 prefork 上,我使用了:

MaxClients 256

StartServers 190

MinSpareServers 160

MaxSpareServers 220

我希望能夠接受至少盡可能多的同時請求 (190)

謝謝 !

PS:伺服器環境:Debian 5.0,2x 3.00 Ghz,4 GB RAM,專用於 Apache。

最後,我使用了以下執行良好的設置:

StartServers 8
MaxClients 1024
MinSpareThreads 512
MaxSpareThreads 1024
ThreadsPerChild 64
MaxRequestsPerChild 10000

我選擇了更大的值,因為記憶體佔用應該小得多。我也注意到,當使用奇怪的值執行 apachectl configtest(或啟動/停止)時,它會報告錯誤並自動調整設置。

ServerLimit 256
MaxClients 256
StartServers 19
ThreadsPerChild 10
MinSpareThreads 160
MaxSpareThreads 220
MaxRequestsPerChild 10000

這會:

  • httpd啟動時啟動190個執行緒
  • 最多同時處理 256 個請求
  • 確保最少 160 個備用執行緒
  • 最多限制 220 個備用執行緒
  • 在用新的子程序替換之前,將每個 httpd 子程序限制為服務 10,000 個請求。這有助於防止在底層應用程序中存在記憶體洩漏的情況下掛起 apache 伺服器。

引用自:https://serverfault.com/questions/61537