mod_fcgid: не может применить слот процесса для/var/www/cgi-bin/cgi_wrapper/cgi_wrapper

Мой блог-сайт Wordpress имеет обычно 200 пользователей в минуту, но при 1 000 пользователей в минуту загружают мой сайт, становится очень медленным, и это предупреждение появляется в моем 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    

Какова может быть причина этого предупреждения и как я могу зафиксировать его?

2
задан 18 August 2014 в 01:46
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

2
ответ дан 3 December 2019 в 11:41