Today we will talk about open tools for assessing the performance of processors, memory, file systems, and storage systems.
The list includes utilities offered by GitHub residents and participants of thematic threads on Reddit — Sysbench, UnixBench, Phoronix Test Suite, Vdbench, and IOzone.
/ Unsplash /
This is a utility for load testing MySQL servers, based on the LuaJIT project, which develops a virtual machine for the Lua programming language. The tool's author is programmer and MySQL expert Alexey Kopytov. The project started as a hobby but gained recognition in the community over time. Today, sysbench is used by large universities and IT organizations .
During the SECR-2017 conference (the recording of the speech ) Alexey explained that sysbench allows evaluating database performance when migrating to new hardware, upgrading database versions, or experiencing sharp changes in the number of requests. Generally, the command syntax for conducting a test looks as follows:
sysbench [options]... [testname] [command]This command defines the type (cpu, memory, fileio) and parameters of the load test (number of threads, number of requests, transaction processing speed). Overall, the tool can handle millions of events per second. More about the architecture and internal workings of sysbench was discussed by Alexey Kopytov in one of the .
A suite of tools for assessing the performance of Unix systems. It was introduced by engineers from Monash University in 1983. Since then, many people have maintained the tool, such as the authors of the microcomputer technology magazine and LKML participant David Niemi. The next version of the tool is being developed by Anthony Voellm) from Microsoft.
UnixBench consists of a set of individual tests. They compare the speed of code execution on a Unix-driven machine with the performance of a reference system, which is represented by 20-61. Based on this comparison, a score is generated that determines performance.
Available tests include Whetstone, which describes floating-point operation efficiency, File Copy, assessing data copying speed, and several 2D and 3D benchmarks. A complete list of tests can be found in . Many of them are used to assess the performance of cloud virtual machines.
This test suite was developed by the authors of the Phoronix website, which publishes news about GNU/Linux distributions. The Test Suite was first introduced in 2008 — it included 23 different tests at that time. Later, the developers launched the cloud service , where users could publish their own test scripts. Today, it features 60 benchmark sets, including those related to machine learning and ray-tracing technology.
Specialized script sets allow testing of individual system components. They can be used to evaluate kernel compilation time, video file encoding speed, compression speed of archivers, etc. To run the tests, simply type the corresponding command in the console. For example, this command initiates CPU performance assessment:
phoronix-test-suite benchmark smallptDuring the testing, the Test Suite automatically monitors the hardware status (CPU temperature and fan speed), protecting the system from overheating.

/ Unsplash /
A tool for generating I/O load on storage systems, developed by Oracle. It helps assess the performance and integrity of storage systems (we have prepared a ).
on how to calculate the theoretical performance of a storage system). The solution works as follows: a program SWAT (Sun StorageTek Workload Analysis Tool) is run on a real system, which creates a dump of all disk accesses over a certain period. Timestamps, operation type, address, and block size are recorded. Then, using the dump file, vdbench emulates the load on any other system.
A list of parameters for controlling the utility is available in the official . The source code of the utility can be found .
A console utility for file system performance evaluation. It determines the speed of reading, writing, and rewriting files. Dozens of programmers participated in the development of the tool, but its first version was authored by engineer William Norcott. The development was supported by companies such as Apple, NetApp, and iXsystems.
To manage streams and their synchronization during testing, the tool uses the standard Upon completion of its work, IOzone produces a report with the results either in text format or as a spreadsheet (Excel). The tool also includes a script, gengnuplot.sh, which constructs a three-dimensional graph from the table data. Examples of such graphs can be found in the tool documentation ().
IOzone is available as a test profile in the aforementioned Phoronix Test Suite.
Additional reading from our blogs and social media:
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Source: habr.com
