Если веб-сервер работает медленно, есть ли способ узнать, какие файлы ответственны за это?
Отредактировано:
ОС Debian с веб-сервером Apache2
Если вы пытаетесь выяснить, какой из скриптов вашего пользователя потребляет ваши ресурсы, вы можете использовать apache itk mpm, который запускает vhosts под пользователем / группой по вашему выбору. Каждый запрос вызывает процесс apache, запущенный от имени этого пользователя. Таким образом, вывод ps / top покажет, какой пользователь запускает скрипт (и, следовательно, какой vhost). Обратной стороной является то, что itk, конечно, значительно медленнее. - Поскольку с обычным предварительным форком или рабочим apache mpm обрабатывает несколько запросов в одном процессе для повышения производительности, труднее определить, какие запросы поглощают ваш mojo.
Если вы пытаетесь выяснить, какие именно функции в приложении php используют ваши ресурсы, вам придется использовать xdebug. Очевидно, что метод профилирования xdebug будет одноразовой проверкой для одного приложения php, а не решением для определения того, какой сценарий, принадлежащий какому пользователю в среде общего хостинга, потребляет время процессора.
Вы рассматривали возможность использования профилировщика?
Видеть:
http://blogs.reucon.com/srt/2007/12/13/profiling_php_applications.html
http://www.sitepoint.com/blogs/2007/04/23/faster-php-apps-profile-your-code-with-xdebug/
Отсутствует полезная информация:
edit: вы проверили обычные инструменты просмотра процессов в окне Linux, такие как top, iostat, fuser, lsof?
Одна вещь, которую я делаю, это немного неэффективно, но у меня каждую минуту запускается задание cron, которое использует curl для сохранения вывода http://localhost/server-status
в файл с датой и временем в качестве имени файла. Таким образом, я могу открыть эти файлы в веб-браузере и увидеть, к каким URL-адресам осуществлялся доступ в данный момент. Сравнение нескольких из них показывает, какие сценарии используют больше всего ресурсов. Но это не очень точно, это просто быстрый и грязный способ увидеть, что происходит.
Для точного представления используйте профилировщик, как предлагали другие.
Дайте мне знать, если вы хотите увидеть работу cron.