Sysbench is a popular open-source benchmarking tool designed to evaluate the performance of system components such as CPU, memory, disk I/O, and databases. It is commonly used for testing MySQL, PostgreSQL, and other databases under different load conditions. Sysbench is a scriptable multi-threaded benchmark tool based on LuaJIT.
Created by Alexey Kopytov, sysbench
has been around for approximately two decades. While git
shows the first commit as Jan 2006
this product was previously used on Launchpad https://launchpad.net/sysbench
and the Changelog has a reference of 2004-02-19.
While many see benchmark results published using sysbench
online to compare hardware or software or a combination, what does it actually do under the covers? What capabilities can sysbench
provide? How can you use sysbench
for your own testing needs?
You make know sysbench
can run database read-only tests, write tests, read-write tests and many different combinations. Did you know the popular oltp_read_only
test runs 16 SQL statements per transaction. You can with the correct arguments configure this to 1 statement. When you see a graph online of results, knowing the underlying details matter.
I’ve taken the time to create a repository the larger system ecosystem and specifics that are important.
- A list of Sysbench Tests by various authors.
- The default Sysbench Arguments .
- An analysis of SmallDatum suite of test cases and arguments used.
- Detailed evaluation of tests showing the SQL, table structures, query explain plans and command line options. Check out oltp_read_only as an example.
What is Important with Benchmarking?
The answer will depend on who is asked and what product(s) are being evaluated. Generally the most important measurements for comparison include:
- Query Throughput
- Query Latency
- Runtime Resource Utilization (e.g. CPU, RAM, I/O, Network)
- Data Storage
- Total Execution Time
- Cost Savings
Conclusion
I have built my own suite of benchmarking scenarios
which I will be using for performing a number of benchmarks of various infrastructure and software architects and I’ve leveraged sysbench
as my foundation for these tests. Stay tuned!