Используя Apache 2.2 и mod_perl на Ubuntu 8.04 у меня есть несколько приложений на сервере. Используя Apache в предварительно разветвляющемся режиме. Обычно вещи работают хорошо, но время от времени я вижу один из процессов Apache с помощью 100% ЦП.
Существует несколько веб-сайтов по серверу со своим собственным VirtualHosts и существует, и сервер SVN, работающий через Apache.
Как я мог разыскать, какое приложение и который звонит в то приложение, генерирует высокую загрузку?
Devel :: NYTProf на данный момент в значительной степени лучший профилировщик для Perl с Devel :: NYTProf :: Apache для простого профилирования приложений mod_perl.
См. Тим Банс: NYTProf v2 - значительное улучшение профилировщиков Perl , где представлен красивый обзор с изображениями.
К сожалению, Devel :: NYTProf не входит в состав Ubuntu Hardy. (Он предварительно упакован в Jaunty, Karmic, Lucid и более поздних версиях.) Вы можете использовать какой-нибудь хитрый прием для установки пакетов из этих дистрибутивов, установки из CPAN или просто обновления; -)
Я не очень понимаю, почему вы бы сделать это HTML Helper. Я бы сделал его частью словаря ViewData в методе действий контроллера. Примерно так:
ViewData["Age"] = DateTime.Now.Year - birthday.Year;
Учитывая, что день рождения передается в метод действия и является объектом DateTime.
-121--2543112- У меня нет опыта кэширования хэш-кодов, но недавно я выполнил некоторые работы по преобразованию std:: map
в std:: tr1:: unordered _ map
. На ум приходят две мысли. Во-первых, сначала попробуйте профилировать это относительно простое изменение, потому что оно иногда ухудшает ситуацию , в зависимости от того, что делает ваш код. Это может дать вам достаточно ускорения самостоятельно, прежде чем вы попытаетесь оптимизировать дальше. Во-вторых, что ваш профилировщик говорит о другом 90% времени инициализации? Даже если вы оптимизировали глобальный словарь до 0 раз, вы в лучшем случае повысите производительность на 10%.
Если в конфигурации apache включен большой репозиторий подрывной системы и включена авторизация на основе пути, вы увидите некоторые длительные задачи с высоким уровнем apache ЦП. Вероятно, у вас также будут жалобы от пользователей подрывной системы на медленные фиксации и обновления, а также 503 ошибки и подрывная система, жалующиеся на усеченные ответы SSL. Если это так, я бы сделал подрывную деятельность главным подозреваемым.
Используйте настраиваемый формат журнала или напишите PerlLogHandler, который записывает информацию запроса вместе с PID и информацией об использовании ресурсов. См., Например, Рэндал Колонка 48 веб-методов .