Hi everyone, I have a scenario where I have 500 VUs (at most) requesting to download a specific object from Minio. The API I created essentially generates a new folder (for every request) and downloads ~70MB zip folder from Minio. This is to mimic the real world, where multiple users are trying to download the same content. The test script I have essentially sends the same object to the API, which will download the same zip folder from Minio. Here is my test script:
import http from 'k6/http';
import { tagWithCurrentStageIndex } from 'https://jslib.k6.io/k6-utils/1.3.0/index.js';
import { sleep, check } from 'k6';
export const options = {
discardResponseBodies: true,
scenarios: {
load: {
executor: 'ramping-vus',
startVUs: 0,
stages: [
{ duration: '5m', target: 50 },
{ duration: '5m', target: 200 },
{ duration: '5m', target: 350 },
{ duration: '5m', target: 500 },
{ duration: '5m', target: 0 },
],
tags: { test_type: 'load' },
gracefulRampDown: '5m',
},
},
thresholds: {
'http_req_duration{test_type:load}': ['p(99)<180000'],
},
};
export default async function () {
tagWithCurrentStageIndex();
const url = 'http://localhost:4000/api/s3/object/download';
const data = {
s3Path: 'AE-TEST/0234/test.zip',
};
const headers = {
'Content-Type': 'application/x-www-form-urlencoded',
};
await http.post(url, data, {
headers,
timeout: '240s',
});
sleep(1);
}
For some reason, the RPS is around ~1-5 (at most) RPS, even when the number of VUs is 100+. I’m also using InfluxDB and Grafana to plot my results, and not until recently did I start getting these warnings:
The flush operation took higher than the expected set push interval. If you see this message multiple times then the setup or configuration need to be adjusted to achieve a sustainable rate. output=InfluxDBv1 t=1.015443s
I’m not sure if this effects my results in Grafana, but it’s been a bother. Here are the results I get:
I could also share the code regarding the API, but I wanted to see if it had to do with something regarding my script. Thanks in advance!