Я сталкиваюсь с незнакомыми симптомами Apache, и мне любопытно, знает ли кто-нибудь, как их диагностировать. У меня есть пара серверов приложений, на которых запущены mod_python и Apache, недавно обновленные до Django 1.2.3. Они подключаются к серверу базы данных, на котором работает PostGIS и memcached.
Вот что я вижу в топе:
Процессы httpd на серверах приложений достигают минимума 20.
% Wa ЦП серверов приложений, который в прошлом почти всегда был близок к нулю, начинает танцевать около% 50.
Перезагружаю apache, проблемы ушли. Пока это повторяется только один раз, но я беспокоюсь, что может, и мне любопытно разобраться в сути. Кто-нибудь видел это раньше? Знаете, как с этим справиться? Я планирую попытаться внимательно изучить операции io, если они снова будут обрабатываться, но у меня нет хорошего контроля над этим.
Использовать strace -T -f -p 1154
где 1154 - это идентификатор процесса-нарушителя. Затем используйте grep и sed / awk и lsof, чтобы попытаться разобраться, какие системные вызовы занимают много времени. Вы, вероятно, обнаружите, что вариант read () или write () для конкретного файла занимает много времени. Вы должны сначала попробовать просмотреть список открытых файлов с помощью lsof, чтобы получить дескриптор файла (например, 5), а затем выполнить поиск read(5,
и проверьте число в конце (например, <0.00056>
). Чем больше это число, тем больше вам нужно исследовать устройство, на котором находится файл, поэтому lsof
так удобно.
Кстати, на некоторых системах мне приходится выдавать SIGCONT
против процесса и его детей, потому что strace выпустил SIGSTOP
. Введите как root: cd /proc/1154/task; kill -CONT *; cd /