【问题标题】:Understanding JMeter results on simple Laravel application了解简单 Laravel 应用程序上的 JMeter 结果
【发布时间】:2021-04-24 11:03:42
【问题描述】:

我很难理解 Jmeter 的负载测试结果。

我想了解一个普通的 Laravel 应用程序可以处理多少负载。我在普通 Laravel 8 上设置了简单的端点,并尝试了不同的 AWS EC2 实例(t3.medium、t3.xlarge、负载平衡设置等)。

如果我们强行增加响应时间,则使用了以下路线:

Route::get('/r0', function (Request $request) {
    $data = [
        'name' => 'test_name',
        'image' => 'imageURL',
        'translations' => [
            'en' => 'test_english',
            'te' => 'పంచాయతి సెక్రటరి',
        ],
    ];

    return
        response()->json($data, 200, ['Content-Type' => 'application/json;charset=UTF-8', 'Charset' => 'utf-8'], JSON_UNESCAPED_UNICODE);
});

Route::get('/r1', function (Request $request) {
    sleep(2);
    $data = [
        'name' => 'test_name',
        'image' => 'imageURL',
        'translations' => [
            'en' => 'test_english',
            'te' => 'పంచాయతి సెక్రటరి',
        ],
    ];

    return
        response()->json($data, 200, ['Content-Type' => 'application/json;charset=UTF-8', 'Charset' => 'utf-8'], JSON_UNESCAPED_UNICODE);
});

Route::get('/r2', function (Request $request) {
    sleep(10);
    $data = [
        'name' => 'test_name',
        'image' => 'imageURL',
        'translations' => [
            'en' => 'test_english',
            'te' => 'పంచాయతి సెక్రటరి',
        ],
    ];

    return
        response()->json($data, 200, ['Content-Type' => 'application/json;charset=UTF-8', 'Charset' => 'utf-8'], JSON_UNESCAPED_UNICODE);
});

我记录了从“图表结果”中获得的吞吐量偏差以及从 Jmeter 上的“汇总报告”中获得的不同端点的其他详细信息。

这是 r1 在其中一种设置上的示例结果:

从上面的图片/表格中,有一些我想回答的问题:

  1. 服务器可以为这个端点处理的负载是多少?是偏差高于吞吐量的点(如互联网上的一些博客文章中所说)还是错误百分比非零?

  2. 如何定义服务器可以处理的最大负载或容量?在任何时候都可以是 200 个用户这样的绝对数字吗?

  3. 对于某些端点,服务器在特定负载后完全停止响应。在进行进一步测试之前,我必须重新启动服务器。为什么会这样?

【问题讨论】:

    标签: laravel jmeter load-testing laravel-8


    【解决方案1】:

    您的表格并未完整说明有多少线程处于活动状态以及线程数量、吞吐量、响应时间、错误等之间的关系。我宁愿建议生成HTML Reporting Dashboard,它的方式更多比汇总的数字更丰富

    1. 通常我会寻找saturation point - 最大系统性能的点,例如:

      • 从 1 个虚拟用户开始
      • 逐渐增加负载观察,即Transactions per Second chart。在表现良好的系统上,吞吐量(每秒事务数)应该增加与虚拟用户数量相同的因子,即您增加负载两倍 - 吞吐量应该高两倍。响应时间应该大致相等
      • 在某些时候,您会看到吞吐量下降而响应时间增加。如果您在此之前查看 Active Threads Over Time 图表 - 您将看到在此阶段有多少虚拟用户在线 - 这就是您要查找的数字
      • 您可以继续增加负载以查看错误何时开始发生或应用程序终止
    2. 我认为第一点提供了答案

    3. 可能的原因有很多,最常见/最明显的是:

    【讨论】:

    • 感谢 Dmitri 撰写答案。所以图表结果没有用?
    • .e.g.至于如何解决偏差?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-05
    • 1970-01-01
    相关资源
    最近更新 更多