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

Как я могу узнать, какие именно сценарии PHP занимают все ресурсы сервера?

Если веб-сервер работает медленно, есть ли способ узнать, какие файлы ответственны за это?

Отредактировано:

ОС 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/

Отсутствует полезная информация:

  1. ОПЕРАЦИОННЫЕ СИСТЕМЫ?
  2. http демон?

edit: вы проверили обычные инструменты просмотра процессов в окне Linux, такие как top, iostat, fuser, lsof?

Одна вещь, которую я делаю, это немного неэффективно, но у меня каждую минуту запускается задание cron, которое использует curl для сохранения вывода http://localhost/server-status в файл с датой и временем в качестве имени файла. Таким образом, я могу открыть эти файлы в веб-браузере и увидеть, к каким URL-адресам осуществлялся доступ в данный момент. Сравнение нескольких из них показывает, какие сценарии используют больше всего ресурсов. Но это не очень точно, это просто быстрый и грязный способ увидеть, что происходит.

Для точного представления используйте профилировщик, как предлагали другие.

Дайте мне знать, если вы хотите увидеть работу cron.