Назад | Перейти на главную страницу

Что происходит, когда httpd% mem в Apache набирает 20+, а% wa процессора нагружается?

Я сталкиваюсь с незнакомыми симптомами Apache, и мне любопытно, знает ли кто-нибудь, как их диагностировать. У меня есть пара серверов приложений, на которых запущены mod_python и Apache, недавно обновленные до Django 1.2.3. Они подключаются к серверу базы данных, на котором работает PostGIS и memcached.

Вот что я вижу в топе:

Перезагружаю 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 /