Как я могу отслеживать интенсивные запросы процессора в mod_perl? - PullRequest
5 голосов
/ 03 февраля 2010

Используя Apache 2.2 и mod_perl в Ubuntu 8.04, у меня есть несколько приложений на сервере. Использование Apache в режиме предварительного разветвления. Обычно все работает хорошо, но время от времени я вижу, как один из процессов Apache использует 100% процессорного времени.

На сервере имеется несколько веб-сайтов со своими собственными виртуальными хостами, и есть и сервер SVN, работающий через Apache.

Как я могу отследить, какое приложение и какие вызовы в этом приложении вызывают высокую нагрузку?

Ответы [ 3 ]

4 голосов
/ 03 февраля 2010

Devel :: NYTProf в настоящее время является главным профилировщиком для Perl с Devel :: NYTProf :: Apache для простого профилирования приложений mod_perl.

См. Тим Бунс: NYTProf v2 - значительный прогресс в Perl-профилировщиках для красивого обзора с изображениями.

К сожалению, Devel :: NYTProf предварительно не упакован в Ubuntu Hardy. (Он предварительно упакован в Jaunty, Karmic, Lucid и более поздних версиях.) Вы можете использовать некоторые хитрые трюки для установки пакетов из этих дистрибутивов, установки из CPAN или просто обновить; -)

0 голосов
/ 04 февраля 2010

Используйте пользовательский формат журнала или запись PerlLogHandler, которая записывает информацию запроса вместе с PID и информацией об использовании ресурса. См., Например, столбец Рэндала Web Techniques 48 .

0 голосов
/ 03 февраля 2010

Если у вас есть большой репозиторий subversion и авторизация на основе пути, включенная в вашей конфигурации apache, вы увидите некоторые длительные задачи Apache с высокой загрузкой процессора. Вы, вероятно, также будете получать жалобы от пользователей Subversion на медленные коммиты и обновления, наряду с 503 ошибками и жалобами Subversion на усеченные ответы SSL. Если это так, я бы сделал подрывную деятельность моим главным подозреваемым.

...