У меня на сервере стоит Afterlogic Webmail Lite (на php) http://www.afterlogic.org/webmail-lite. С какого-то обновления начались странные глюки. Заглядывая в вывод MRTG я обнаружил, что какой-то процесс полностью загружает одно из ядер процессора. 25%, 50, 75, 100... Процесс оказался апачем, выполняющим Webmail. Разработчики не знают в чем дело, дали пару каких-то непомогших советов, зато я выяснил, что я не один такой.
В логах я ничего особенного не нашел. Адрес с которого запущен процесс всегда левый. То есть, похоже, это не кто-то из моих пользователей подвешивает Webmail, а кто-то сторонний и незалогиненный.
Процесс подвисает и сам не грохается никогда. Я решил попробовать убивать процесс и читать coredump.. Но то ли я не по тому пути иду, то ли ручки кривенькие, но успеха не достиг. Там всегда один execute, а функция, которую он исполняет какая-то базовая.. Без нее Webmail не запускается.
Нет стартовых идей куда податься?
Решения не знаю, у вас слишком общее описание, не за что зацепиться.Но если оно так сильно грузит все, что мешает всем остальным, то можно попробовать поиграться с параметром, кот. ограничит использование процессора детьми апача:
http://httpd.apache.org/docs/2.4/mod/core.html#rlimitcpuНу и, возможно, надо проверить все параметры, связанные с разнообразными таймаутами, поиграться с ними, вдруг какой-то слишком большой, поэтому дочерний процесс долгл не убивается.
Это все не решение, само собой, а возможные средства минимизации вредных эффектов, чтобы оно как-то работало и польхователи не жаловались.
Ну а дальше таки надо глубже лезть во внутренние показатели производительности апача, иначе все равно трудно понять что-то, к примеру через вот это - http://httpd.apache.org/docs/2.4/mod/core.html#extendedstatus. Но оно тоже само по себе может апач тормознуть. :)
Да вроде бы я с этим уже игрался. Тут виноват-то не апач, а какой-то скрипт php-шный. Что-то криво написано и его циклит (мне так это видится). Хотелось бы найти что собственно циклится.
Вопрос скорее в том, чтобы помочь мне разобраться как в висящем процессе понять, что его подвесило.
Можно попробовать посмотреть, чем именно этот процесс занимается, или на вызове какой функции остановился в ожидании. Вы не написали, вроде, под чем оно крутится. Если линукс, то смотрите на strace, если солярис, то truss. Про остальные не знаю, но найти, как я понимаю, не сложно.
> Можно попробовать посмотреть, чем именно этот процесс занимается, или на вызове какой
> функции остановился в ожидании. Вы не написали, вроде, под чем оно
> крутится. Если линукс, то смотрите на strace, если солярис, то truss.
> Про остальные не знаю, но найти, как я понимаю, не сложно.Я вроде бы нашел общий язык с разработчиками. Там, как выяснилось ничего не зависает, а кто-то пытается целенаправленно что-то сделать с сервером через Webmail. Осталось выснить что и как его поймать (
Так что вопрос снимается, прошу прощения! И спасибо!
А так Линукс.