我试图在Laravel应用程序中调试一个性能问题。我在Debian 7上安装了Blackfire和JMeter,安装在Apache / Postgres / PHP5-FPM / Redis堆栈中。
如果我正常运行黑火,我就能得到我想要的。
# 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测试,它只会尽可能多地加载我的应用程序的主页。随着测试的运行,我能够看到性能下降。以下是的UI。
JMeter测试计划UI
非常简单。
所以,如果我在测试中运行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文件中为Blackfire指定了30秒后超时。我还要求它将与PHP相关的错误放在一个特定的日志文件中,但从未出现过。
即使在考试中,我也能非常准确地再现这个问题。如果我在10样例测试期间的任何一点激活JMeter (即使它离完成还有1次测试),它将弹出完全相同的错误消息。
有人知道为什么会发生这种事吗?
发布于 2016-01-10 10:20:24
有了这样一个Jmeter计划,您将发出8个并发请求,其间不间断:就像ceejayoz说的那样,这是一种DOS。
在这些情况下,根据您所得到的错误,探测器似乎没有足够的响应。
我首先添加一个吞吐量控制器,配置1个请求/秒/线程(或类似的值)。然后,可以使用单个线程运行检查。如果它有效,您可以增加线程数,并查看问题从何处开始。
我对Blackfire不太了解,但它似乎更倾向于检查页面性能,而不是加载性能。
https://stackoverflow.com/questions/34666932
复制相似问题