Other responses might be more what you are looking for, but I've been tinkering with a thing called 'benchy' (php) - apache bench ... that uses php.
https://github.com/gomox/benchy
In the setup file for benchy, one provides a url to a php script. That php script I've got right now outside of Moodle, accessing the database in the old way, but pointed to displaying all records in the log store. Yes, that's massive so this is a non-prime time thang.
Sample of config (without credentials to access Moodle content):
[root@sos]# cat config.json
{
"url": "https://site/benchy/sometest.php/",
"cookie": null,
"basicauth": null,
"tests": [
{ "concurrency": 1, "requests": 10 },
{ "concurrency": 2, "requests": 20 },
{ "concurrency": 4, "requests": 40 },
{ "concurrency": 8, "requests": 80 },
{ "concurrency": 16, "requests": 160 },
{ "concurrency": 32, "requests": 320 },
{ "concurrency": 64, "requests": 640 },
{ "concurrency": 128, "requests": 1280 }
]
}
One runs benchy one time. Then one makes tweaks to DB/apache. Then one runs benchy again.
The second graph drawn by benchy is right beside your first run. Pretty easy to determine if faster or slower.
If you look at the screen shots from the github link above you'll see what I mean. ** But, there are additional options one can choose from the 'benchy' menu on the left ... one is concurrent. **
What I'd like to be able to do with it .... find a way to pass credentials to Moodle ... ie, login a user ... so that I could point the php script to just the rendering of a quiz .... set to something 'heavy processing' ... like show all questions of a quiz that contains 100 questions.
It's not jmeter ... but then again ... one doesn't run jmeter on a production server where clean up of a run on a production server is/could be massive. Benchy is outside of Moodle so possible to run it on a production server - within reason ... me thinks!
'spirit of sharing', Ken