Я пытаюсь найти узкие места и в настоящее время регистрирую время в скрипте, но, похоже, это случайное время для определенных операций. Есть ли инструмент, который позволит мне увидеть разбивку того, что происходит во время определенного запроса [apache], чтобы отследить, горит ли ЦП все время или он ждет чего-то еще?
Это - вопрос профилирования; необходимо ли поднять трубку профильный инструмент к процессу и получить ли его, что действительно продолжается. Для действительно профильного плохого человека я просто присоединяю к нему с помощью strace; использование флагов синхронизации (-T -r
) обычно дает мне хорошую идею того, какие системные вызовы занимают время, и стачивается ли сам процесс просто вперед. Там существуют лучшие вещи, но они более ориентированы разработчиками.
Если Вы используете окна OS, то бесплатные инструменты от SysInternals могли бы быть лучшим местом для запуска. Инструмент Process Explorer довольно хорош в наблюдении активных процессов, что называет их, и какие действия происходят. SysInternals делает довольно легким загрузить Комплект SysInternals инструментов. Это отчасти похоже на карту American Express, не уезжайте из дома с ним.
Надежда это помогает некоторым.
Вы видите еще некоторую деталь с инструментом как procstat. Вы подаете его PID, и это декодирует/proc/файл $pid/stat, который может сказать Вам некоторый интересный материал внутренностей, как количество мига ЦП, который это использовало, или его дети использовали.