【问题标题】:Blackfire instantly fails when I have JMeter running当我运行 JMeter 时,Blackfire 立即失败
【发布时间】:2016-01-07 23:16:49
【问题描述】:

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

如果我正常运行 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 小程序的 UI。

JMeter Test Plan 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-FPM 配置文件中指定 Blackfire 在 30 秒后超时。我还要求它把 PHP 相关的错误放在一个特定的日志文件中,但从来没有出现过。

即使在测试过程中,我也可以非常准确地重现此问题。如果我在 10 个样本测试期间的任何时候激活 JMeter(即使距离完成还有 1 个测试),它会以完全相同的错误消息退出。

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

【问题讨论】:

  • 您基本上是在对响应进行 DDOS 攻击。看起来 Blackfire 取决于该网站是否正常运行,而您的 DDOS 会阻止其所有请求通过。
  • @ceejayoz 我可以很好地加载文档,只需一秒钟。远低于 Blackfire 的超时阈值。
  • 您的负载测试是连续的,即使您可能能够从页面点击应用程序,但看起来 blackfire 需要与它的“代理”对话。但是,同意这不好,错误应该很清楚,或者在 PHP 中运行不应该导致这个问题。问题:你的 CPU 是固定的吗?你有服务器的图表吗?

标签: php laravel jmeter blackfire


【解决方案1】:

有了这样一个 Jmeter 计划,你将发出 8 个并发请求,中间没有停顿:就像 ceejayoz 说的,它是一种 DOS。

在这些情况下,根据您遇到的错误,探针似乎响应不够。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-15
    • 2013-06-08
    • 2012-02-17
    • 2011-09-10
    • 2018-05-19
    • 1970-01-01
    相关资源
    最近更新 更多