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

Как лучше всего увидеть разбивку использования процессора для данного процесса?

Я пытаюсь найти узкие места и в настоящее время регистрирую время в скрипте, но для определенных операций оно кажется случайным. Есть ли инструмент, который позволит мне увидеть разбивку того, что происходит во время определенного запроса [apache], чтобы отследить, горит ли ЦП все время или он ждет чего-то еще?

Это вопрос профилирования; вам нужно подключить к процессу инструмент профилирования и понять, что происходит на самом деле. Для профилирования действительно бедного человека я просто прикрепляю к нему с помощью strace; используя флаги времени (-T -r) обычно дает мне хорошее представление о том, на какие системные вызовы уходит время и идет ли сам процесс. Есть вещи получше, но они больше ориентированы на разработчиков.

Если вы используете ОС Windows, то лучше всего начать с бесплатных инструментов от SysInternals. В Обозреватель процессов Инструмент довольно хорошо отслеживает активные процессы, что их вызывает и какие действия выполняются. SysInternals позволяет довольно легко скачать SysInternals Suite инструментов. Это что-то вроде карты American Express, не выходите с ней из дома.

Надеюсь, это кому-то поможет.

Еще кое-что, что нужно проверить, если вы можете, - это следить за производительностью сервера.

Может быть, ваши очереди на дисках увеличиваются, возможно, у вас неисправный диск в RAID, может быть, у вас заканчивается память и т. Д.

Вы можете увидеть больше деталей с помощью такого инструмента, как procstat. Вы скармливаете ему PID, и он декодирует файл / proc / $ pid / stat, который может рассказать вам кое-что интересное о внутреннем устройстве, например, количество переключений процессора, которые он использовал, или его дочерние элементы.