【发布时间】: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 在其中一种设置上的示例结果:
从上面的图片/表格中,有一些我想回答的问题:
-
服务器可以为这个端点处理的负载是多少?是偏差高于吞吐量的点(如互联网上的一些博客文章中所说)还是错误百分比非零?
-
如何定义服务器可以处理的最大负载或容量?在任何时候都可以是 200 个用户这样的绝对数字吗?
-
对于某些端点,服务器在特定负载后完全停止响应。在进行进一步测试之前,我必须重新启动服务器。为什么会这样?
【问题讨论】:
标签: laravel jmeter load-testing laravel-8