mod_fcgid: невозможно применить слот процесса для /var/www/cgi-bin/cgi_wrapper/cgi_wrapper
Мой блог-сайт Wordpress обычно имеет 200 пользователей в минуту, но при загрузке менее 1000 пользователей в минуту мой сайт работает очень медленно, и это предупреждение появляется в моем error_log.
[Sun Aug 17 16:44:41 2014] [warn] [client **.***.**.***] mod_fcgid: can't apply process slot for /var/www/cgi-bin/cgi_wrapper/cgi_wrapper
Иногда эти два также сопровождают предупреждение:
[Sun Aug 17 16:44:41 2014] [warn] [client ***.***.***.**] mod_fcgid: read data timeout in 45 seconds
[Sun Aug 17 16:44:41 2014] [error] [client ***.***.**.**] Premature end of script headers: index.php
Я проверил состояние сервера и ЦП, уровни памяти и нагрузки ниже 30%.
Информация о сервере:
CPU GenuineIntel, Intel(R) Xeon(R)CPU L5630 @ 2.13GHz
Version Parallels Plesk Panel v11.5.30_build115130819.13 os_CentOS 5
OS CentOS 5.5 (Final)
Memory 5.89 GB
Prefork.c:
<IfModule prefork.c>
StartServers 1
MinSpareServers 1
MaxSpareServers 3
ServerLimit 50
MaxClients 50
MaxRequestsPerChild 4000
</IfModule>
Fcgid.conf
FcgidIdleTimeout 40
FcgidProcessLifeTime 30
FcgidMaxProcesses 20
FcgidMaxProcessesPerClass 8
FcgidMinProcessesPerClass 0
FcgidConnectTimeout 30
FcgidIOTimeout 45
FcgidInitialEnv RAILS_ENV production
FcgidIdleScanInterval 10
В чем может быть причина этого предупреждения и как я могу это исправить?
1 ответ
Вы видели http://www.cloudlinux.com/blog/clnews/perfecting-fastcgi-settings-for-shared-hosting.php?
FcgidMaxProcesses - это общее количество процессов, запускаемых FCGID для всех пользователей. Это то, что предотвратит проблемы с OOM. Чем больше оперативной памяти у вас есть, тем выше вы можете установить значение. Если вы установите это значение слишком низким, вы получите 500 ошибок, так как FCGID не сможет создавать новые процессы для обслуживания запросов. Это значение также зависит от размера процессов PHP (который, в свою очередь, зависит от расширений, которые вы включили для PHP), поскольку чем больше процесс, тем быстрее вы получите OOM. Вы можете попробовать поиграть со следующими номерами в зависимости от вашей оперативной памяти: 8 ГБ - около 150, 16 ГБ - 300. Также убедитесь, что вы отслеживаете журналы ошибок apache. Если вы видите "невозможно применить слот процесса для ошибки" - это означает, что вы нажимаете FcgidMaxProcesses
Попробуйте увеличить FcgidMaxProcesses до 150