Как я могу разыскать ЦП интенсивные запросы в mod_perl?

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

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

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

5
задан 2 revs, 2 users 100% 4 February 2010 в 02:06
поделиться

3 ответа

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

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

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

4
ответ дан 15 December 2019 в 01:01
поделиться

Я не очень понимаю, почему вы бы сделать это HTML Helper. Я бы сделал его частью словаря ViewData в методе действий контроллера. Примерно так:

ViewData["Age"] = DateTime.Now.Year - birthday.Year;

Учитывая, что день рождения передается в метод действия и является объектом DateTime.

-121--2543112-

У меня нет опыта кэширования хэш-кодов, но недавно я выполнил некоторые работы по преобразованию std:: map в std:: tr1:: unordered _ map . На ум приходят две мысли. Во-первых, сначала попробуйте профилировать это относительно простое изменение, потому что оно иногда ухудшает ситуацию , в зависимости от того, что делает ваш код. Это может дать вам достаточно ускорения самостоятельно, прежде чем вы попытаетесь оптимизировать дальше. Во-вторых, что ваш профилировщик говорит о другом 90% времени инициализации? Даже если вы оптимизировали глобальный словарь до 0 раз, вы в лучшем случае повысите производительность на 10%.

-121--3926396-

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

0
ответ дан 15 December 2019 в 01:01
поделиться

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

0
ответ дан 15 December 2019 в 01:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: