当JMeter运行时,Blackfire会立即失败

时间:2016-01-07 23:16:50

标签: php laravel jmeter blackfire

我正在尝试在Laravel PHP应用程序中调试性能问题。我在Apache / Postgres / PHP5-FPM / Redis堆栈中的Debian 7上安装了Blackfire和JMeter。

如果我正常运行Blackfire,我会得到我想要的东西。

Thank you for writing.  We are providing community support on Stack Overflow (www.stackoverflow.com). This provides a convenient way for the Gracenote Developer community to find, follow and track questions or issues with our SDK's and API's.

If you have any specific technical questions regarding our SDK's or API's, including installation, usage or bug reports, please ask them on Stack Overflow (http://stackoverflow.com/questions/ask), and use the 'gracenote' tag. Using this tag will allow other community members, including Gracenote Developer Support to find and respond to your questions.

我有一个非常非常简单的JMeter测试,除了尽可能多地加载我的应用程序的主页之外什么都不做。我可以通过测试运行看到性能下降。这是Java applet的UI。

JMeter Test Plan UI

很简单。

所以现在如果我在测试中运行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       -

这不好。 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.

对该文件的审查不提供使用信息。

我在我的PHP-FPM配置文件中指定Blackfire在30秒后超时。我还要求它将PHP相关的错误放在特定的日志文件中,但这种错误永远不会出现。

即使在测试过程中,我也可以非常准确地重现这个问题。如果我在10个样本测试期间的任何时候激活JMeter(即使它是完成后的1个测试),它将使用完全相同的错误消息进行挽救。

有谁知道为什么会发生这种情况?

1 个答案:

答案 0 :(得分:1)

使用这样的Jmeter计划,你将发出8个并发请求,之间没有停顿:如ceejayoz所说,它是一种DOS。

在这些条件下,根据您获得的错误,探测器似乎没有足够的响应。

我首先添加吞吐量控制器,配置1个请求/秒/线程(或类似值)。然后,您可以使用单个线程运行检查。如果可行,您可以增加线程数并查看问题的开始位置。

我不太了解Blackfire,但似乎更倾向于检查页面性能而不是加载性能。