Профилирующий код на производство - PullRequest
11 голосов
/ 06 декабря 2010

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

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

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

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

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

1 Ответ

9 голосов
/ 07 декабря 2010

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

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

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

Если вы решили пойти с XHProf, взгляните на XHGUI .

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

...