[PHP] php-fpm children數量設置

[PHP] php-fpm children數量設置

  • 如何決定pm.max_children數量?
    • free-memory = 機器空閑的記憶體 
    • avg-request-memory = request平均佔用多大的記憶體(或是用佔用記憶體最多那隻request去算)
    • max_children數量 = free-memory / avg-request-memory
  • 其他設定介紹:
    • pm.start_servers:啟動php-fpm時的child processes數量
    • pm.min_spare_servers:理想的child processes最小數量,通常會設定跟pm.start_servers一樣的數值
    • pm.max_spare_servers:理想的child processes最大數量
    • pm.max_requests:每個child process的最大連線數,達到後會kill掉
  • 範例設置:
    • 記憶體為4G,每個request會佔用100MB,那child processes數量大概可以訂在40
      • pm = dynamic
        pm.max_children = 40
        pm.start_servers = 10
        pm.min_spare_servers = 10
        pm.max_spare_servers = 30