Настройка процессов php-cgi под mod_fcgid

Если вы используете на своем сервере mod_fcgid, то может получиться так, что память куда пропала и все ушло в тормоза :-) и дело не в похмельном синдроме. Дело в том, что на сервере начинают плодиться php-cgi процессы в огромном количестве, каждый из них жрет оперативную память, которой начинает не хватать и Linux вынужден свопиться на диск :-(

Очевидным решением является жесткий тюнинг настроек FastCGI :-)

Все опции вписываем в fcgid.conf по адресу /etc/httpd/conf.d

Перво-наперво выставляем кол-во активных одновременно процессов (FcgidMaxProcesses), а дальше можно подобрать остальные парметры. К сожалению идеального конфига я не знаю, да и он зависит от кол-ва памяти на вашей машине

  1. # максимальное количество процессов, которые могут быть активны одновременно
  2. FcgidMaxProcesses 50
  3.  
  4. # максимальное количество процессов в классе (сегменте), т.е. максимальное количество процессов которое разрешено порождать через один и тот же враппер (wrapper);
  5. FcgidMaxProcessesPerClass 10
  6.  
  7. # минимальное количество процессов в классе
  8. FcgidMinProcessesPerClass 2
  9.  
  10. # если число процессов превышает FcgidMinProcessesPerClass, то процесс, который не обрабатывает запросы за это время (сек), во время следующего сканирования процессов, интервал которого задается в директиве FcgidIdleScanInterval, будет отмечен для убивания;
  11. FcgidIdleTimeout 60
  12. FcgidIdleScanInterval 30
  13.  
  14. # если процесс занят обработкой запросов дольше этого времени (сек), то во время следующего сканирования, интервал которого задается в FcgidBusyScanInterval, такой процесс будет отмечен для убивания;
  15. FcgidBusyTimeout 60
  16. FcgidBusyScanInterval 30
  17.  
  18. # время (сек.) в течении которого модуль mod_fcgid будет пытаться выполнить скрипт
  19. FcgidIOTimeout 30
  20.  
  21. # процесс завершится после того, как совершит указанное кол-во запросов
  22. FcgidMaxRequestsPerProcess 0

Указанная выше конфигурация успешно работает на сервере с 1 гигабайтом памяти, используя в сумме до половины памяти и почти не трогает Swap

Теги: