Blackfire мгновенно выходит из строя, когда у меня работает JMeter
Я пытаюсь отладить проблему с производительностью в моем PHP-приложении Laravel. У меня есть Blackfire и JMeter, установленные в Debian 7 в стеке Apache/Postgres/PHP5-FPM/Redis.
Если я обычно запускаю Blackfire, я получаю именно то, что хочу.
# blackfire --samples 5 curl http://larachan.foo
Profiling: [########################################] 5/5
Blackfire cURL completed
Profile URL: https://blackfire.io/profiles/xxx/graph
Wall Time 263ms
CPU Time 190ms
I/O Time 72.7ms
Memory 8.74MB
Network n/a n/a -
SQL n/a -
У меня есть очень, очень простой тест JMeter, который ничего не делает, кроме как загружает домашнюю страницу моего приложения столько раз, сколько может. Я могу видеть снижение производительности при выполнении теста. Вот пользовательский интерфейс для Java апплет.
Пользовательский интерфейс плана тестирования JMeter
Очень просто.
Итак, теперь, если я запущу Blackfire с этим тестом, я получу ошибку.
# blackfire --samples 5 curl http://larachan.foo
Profiling: [######### ] 2/5
Are you authorized to profile this page? No probe response, missing PHP extension or invalid signature for relaying agent.
Это никуда не годится. В журнале агента Blackfire есть очень короткое, бесполезное сообщение.
[2016-01-07T17:49:22-05:00] ERROR: Error while writing to probe: write unix @: broken pipe
[2016-01-07T17:49:22-05:00] ERROR: Profile data is truncated. Please check https://blackfire.io/doc/troubleshooting#trouble-no-response
Обзор этой документации не содержит никакой полезной информации.
Я указал в своем файле конфигурации PHP-FPM, чтобы Blackfire отключался через 30 секунд. Я также попросил его поместить ошибки, связанные с PHP, в определенный журнал файл, но он никогда не появляется.
Я могу очень точно воспроизвести эту проблему даже в середине теста. Если я активирую JMeter в любой момент во время теста с 10 образцами (даже если до завершения теста еще 1 тест), он выйдет с точно таким же сообщением об ошибке.
У кого-нибудь есть какие-нибудь идеи, почему это могло произойти?
1 answers
С таким планом Jmeter вы собираетесь выдавать 8 одновременных запросов без паузы между ними: как сказал ceejayoz, это своего рода DOS.
В этих условиях, основываясь на ошибках, которые вы получаете, зонд, похоже, недостаточно отзывчив.
Я бы начал с добавления контроллера пропускной способности, настройки 1 запроса/секунды/потока (или аналогичного значения). Затем вы можете выполнить проверку с помощью одного потока. Если это сработает, вы можете увеличить количество потоков и посмотреть, где начинаются проблемы.
Я мало что знаю о Blackfire, но мне кажется, что я больше ориентирован на проверку производительности страниц, а не на загрузку.