| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > FastCGI, скрипт стал отваливаться по таймауту |
| Автор: ochnev 20.9.2008, 17:56 |
| Есть на одном сервере 2 разных сайта на Perl с FastCGI. Движки почти одинаковые. Один сайт работает нормально, а во втором неожиданно сломался скрипт. Сам скрипт я не трогал. Скрипт на сервере не изменялся с того момента, как он работал. Кликаю по ссылке, начинается ожидание, скрипт умирает по таймауту. Остальные FastCGI-скрипты на том же сайте работают нормально, умирает только один. Перезапуск Apache не помогает, перезагрузка сервера (бессмысленно, но надо было попробовать) тоже ничего не меняет. Я подумал уже, что винт на сервере попортился. Зашёл по SSH, в Midnight Commander'е посмотрел содержимое скрипта и шаблона страницы, - всё открылось, файлы прочитались, значит причина не в этом. Что делать? Истории предшествовало нашествие робота Yahoo, равносильное DOS-атаке. Файл robots.txt я подредактировал, чтобы закрыть сайт от этого робота, - бесполезно. (Умер, кстати, тот самый скрипт, страницу которого часами активно дёргал поганый робот.) Я много раз перезапускал httpd, чтобы как-то сбросить уродского паразита. Могло при этом что-то сломаться? Глупо, конечно, но вдруг есть какой-то баг в Apache или в mod_fastcgi, когда от перезапуска что-то ломается. Может быть, где-то временный файл какой-нибудь надо удалить? Что делать? |
| Автор: ochnev 20.9.2008, 18:26 |
| Попробовал накрыть файл, лежащий на сервере точно таким же файлом с локальной машины (дата там другая, более новая) и перезапустил Apache (для FastCGI это надо). Сначала сработало, ожил скрипт. Теперь опять сдох. Опять перезапустил Apache - скрипт опять ожил. Хоть сиди дежурь, Apache перезапускай каждый раз. |
| Автор: ginnie 22.9.2008, 11:47 |
| Уважаемый ochnev, а в логе ошибок web-сервера есть что-нибудь? |
| Автор: gcc 22.9.2008, 12:11 |
| может быть не "прибитых" процессов много... приоритет к памяти какой? и сколько памяти ОЗУ, 32 метра? |
| Автор: ochnev 11.11.2008, 23:21 | ||
| Видимо, я понял, в чём было дело. Внутри цикла
в некоторых случаях по условию срабатывал оператор exit. После этого с процессами что-то случалось, и в итоге скрипт намертво вис. Там потом получалась куча процессов, соседний сайт на том же сервере даже иногда ложился под нагрузкой. Теперь скрипт переписан, всё вроде OK. |
| Автор: tolkien 12.11.2008, 06:47 |
| Хех это баг CGI::Fast? Или Apache? |