Профилирующий код по производству

Я обожаю идею внедрения чего-то кода кода на производственном сервере и хотел бы получить рекомендации по лучшей практике. Очевидно, что это плохая идея профилировать ВСЕ-запросы из-за дополнительных накладных расходов, поэтому я изучал некоторые методы, которые будут случайным образом вызывать профилировщик на запрос. Что-то вроде 1 профиля за каждые 10 000 запросов.

Я знаю, что есть способ достичь такой задачи с помощью Facebook XHProf Profiler, но надеялся на подобное решение, используя xdebug.

Итак, мои вопросы (если xdebug является профилировщиком):

  • Является ли такая функция даже целесообразной? Я хотел бы получить некоторые реальные данные из производственной среды, но не если это означает, что пользователь может потерять из-за накладных расходов.
  • Устанавливает ли xdebug при производстве сервер для злоумышленников/эксплуататоров каким-либо образом (при условии, что отладчик не включен)? Есть ли конфигурация котельной пластины для этого типа настройки?
  • Каков наилучший способ запуска профилировщика для соответствующего размера выборки?

Любое другое понимание этого вопроса будет высоко оценено.

Ответ 1

Не изобретайте велосипед. XHProf Profiler, безусловно, лучший инструмент для работы, когда дело доходит до кода профилирования в рабочей среде.

Ваши варианты включения профилирования в xdebug ограничены либо профилированием всегда через файл php.ini, либо файл .htaccess через xdebug.profiler_enable = 1, либо выборочное включение профилирования через xdebug.profiler_enable_trigger = 1. В последнем случае вы должны установить параметр XDEBUG_PROFILE GET или POST или отправить файл cookie с именем XDEBUG_PROFILE. Это означает, что если кто-то озорной хочет, они могут замедлить работу вашего сервера, просто добавив этот параметр GET в кучу запросов.

Единственный вариант, который я мог бы увидеть, чтобы профиль относительно случайной выборки запросов заключался в том, чтобы cron script размещать файл .htaccess в соответствующем каталоге, периодически, а затем перемещать его из каталога. Тем не менее, это меньше, чем желательно.

Если вы решите пойти с XHProf, посмотрите XHGUI.

http://phpadvent.org/2010/profiling-with-xhgui-by-paul-reinheimer