mod_fcgid: невозможно применить слот процесса для / var / www / cgi-bin / cgi_wrapper / cgi_wrapper - PullRequest
2 голосов
/ 28 декабря 2011

Я мигрировал на новый более быстрый сервер. Старый сервер хорошо обрабатывал сайт после некоторых серьезных настроек, новый сервер, хотя и с дополнительными 2 гигабайтами оперативной памяти (всего 4), очень медленно реагировал на запросы после 2 дней различных настроек. Я использую PHP в режиме FastCGI, и журналы ошибок заполняются следующими ошибками:

mod_fcgid: can't apply process slot for /var/www/cgi-bin/cgi_wrapper/cgi_wrapper

и несколько

mod_fcgid: read data timeout in 200 seconds

Процессор зависает на 40%, порождается около 80 процессов, сайт работает очень медленно, я попытался настроить fcgid.conf, но безрезультатно:

LoadModule fcgid_module modules/mod_fcgid.so

<IfModule mod_fcgid.c>

<IfModule !mod_fastcgi.c>
    AddHandler fcgid-script fcg fcgi fpl
</IfModule>

  FcgidIPCDir /var/run/mod_fcgid/sock
  FcgidProcessTableFile /var/run/mod_fcgid/fcgid_shm

  FcgidIdleTimeout 200
  FcgidProcessLifeTime 1000
  FcgidMaxProcesses 5
  FcgidMaxProcessesPerClass 10
  FcgidMinProcessesPerClass 0
  FcgidConnectTimeout 8
  FcgidIOTimeout 200
  FcgidInitialEnv RAILS_ENV production
  FcgidIdleScanInterval 20
  FcgidMaxRequestsPerProcess 500
  FcgidBusyTimeout 300

</IfModule>

Есть предложения?

EDIT: лучший результат

Tasks:  94 total,   1 running,  93 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.1%us, 0.0%sy, 0.0%ni, 99.9%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   5379200k total,  1765840k used,  3613360k free,        0k buffers
Swap:        0k total,        0k used,        0k free,        0k cached

93 спящих ????

1 Ответ

2 голосов
/ 02 января 2013

После долгой борьбы с этим я обнаружил, что виновником был старый PHP-код, который замедлял обработку до истечения времени ожидания. В частности, я обнаружил, что файлы, которые использовали <? вместо <?php тегов и были включены в другие файлы, имели длительное время выполнения. Один раз заменил на правильный <?php. Я также понизил версию PHP 5.2.17, чтобы избежать большого количества уведомлений и предупреждений об устаревших функциях. После этого сервер начал летать и ошибки прекратились.

...