Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

DB (SQL) automated stress/load tools?

I want to measure the performance and scalability of my DB application. I am looking for a tool that would allow me to run many SQL statements against my DB, taking the DB and script (SQL) file as arguments (+necessary details, e.g. host name, port, login...).

Ideally it should let me control parameters such as number of simulated clients, duration of test, randomize variables or select from a list (e.g. SELECT FROM ... WHERE value = @var, where var is read from command line or randomized per execution). I would like to test results to be saved as CSV or XML file that I can analyze and plot them. And of course in terms of pricing I prefer "free" or "demo" :-)

Surprisingly (for me at least) while there are dozens of such tools for web application load testing, I couldn't find any for DB testing!? The ones I did see, such as pgbench, use a built-in DB based on some TPC scenario, so they help test the DBMS configuration and H/W but I cannot test MY DB! Any suggestions?

Specifically I use Postgres 8.3 on Linux, though I could use any DB-generic tool that meets these requirements. The H/W has 32GB of RAM while the size of the main tables and indexes is ~120GB. Hence there can be a 1:10 response time ratio between cold vs warm cache runs (I/O vs RAM). Realistically I expect requests to be spread evenly, so it's important for me to test queries against different pieces of the DB.

Feel free to also contact me via email. Thanks!

-- Shaul Dar ([email protected])

like image 944
Shaul Dar Avatar asked May 20 '09 11:05

Shaul Dar


People also ask

Which tool is used for load and stress testing?

LoadRunner is a software testing tool that measures system behavior and performance under complex load and stress scenarios. It works by simulating thousands of concurrent application users to emulate real-world network conditions.

Which of the following automated tools are used to perform load testing?

JMeter is the most popular open-source tool in the performance space to help measure load time. Apache JMeter describes itself as a Java application that was designed specifically for load testing with the ability to measure application performance and response times.


1 Answers

JMeter from Apache can handle different server types. I use it for load tests against web applications, others in the team use it for DB calls. It can be configured in many ways to get the load you need. It can be run in console mode and even be clustered using different clients to minimize client overhead ( and so falsifying the results).

It's a java application and a bit complex at first sight. But still we love it. :-)

like image 165
rudolfson Avatar answered Nov 16 '22 01:11

rudolfson