The 18 Best Linux Benchmarking Scripts
Discover the 18 best Linux benchmarking scripts to evaluate your server's real-world performance (CPU, memory, storage, network, and more).
Publish date: 3/5/2025
Discover the 18 best Linux benchmarking scripts to evaluate your server's real-world performance (CPU, memory, storage, network, and more).
Publish date: 3/5/2025
When it comes to benchmarking your Linux servers, it's helpful because it:
The only issue is there are quite a few different Linux benchmarking scripts out there nowadays, and it can be rather confusing picking the right one that gives you the data you want.
That said, have no fear: in this guide we'll cover the 18 best Linux benchmarking tools that'll help you measure and analyze various aspects of your server performance, from CPU and memory to storage and network capabilities. Let's dive in.
YABS has become the go-to benchmarking script for many system administrators due to its comprehensive approach and simplicity.
What YABS tests:
YABS is ideal for quick assessments of new VPS instances or dedicated servers, providing an excellent first-look at overall system performance.
When you need a fast, lightweight benchmark that doesn't require installation, nench.sh provides a good balance of speed and comprehensiveness.
What nench.sh tests:
nench.sh is perfect for quick comparisons between different providers or instances, especially when evaluating options for a new deployment.
The Phoronix Test Suite is one of the most comprehensive benchmarking platforms available, with over 450 test profiles and 100 test suites.
What Phoronix tests:
Phoronix is particularly valuable for its extensive test library and ability to compare your results against a global database of systems.
As one of the oldest and most comprehensive benchmarking suites, UnixBench provides a holistic view of system performance with a single score that can be compared across different systems.
What UnixBench tests:
UnixBench is excellent for establishing baseline performance and comparing different generations of hardware or OS configurations.
When it comes to CPU and memory performance testing, Geekbench stands out for its comprehensive approach and standardized scoring system.
What Geekbench tests:
Geekbench provides standardized scores that are easily comparable across different systems and platforms.
Understanding how your system performs under load is critical for capacity planning. stress-ng is designed to stress test various system components to their limits.
What stress-ng tests:
stress-ng is invaluable for testing system stability and identifying performance degradation under heavy load conditions.
Originally developed by Google, stressapptest focuses on memory and I/O subsystem validation.
What stressapptest tests:
stressapptest is particularly valuable for validating new hardware or after component replacements to ensure system stability.
For detailed storage performance analysis, Fio is the industry standard tool, offering granular testing with highly customizable parameters.
What Fio tests:
Fio excels at revealing the true capabilities of modern storage systems, especially when configuring databases or I/O-intensive applications.
A classic tool for filesystem performance testing, Bonnie++ focuses on file operations typical in server workloads.
What Bonnie++ tests:
Bonnie++ is particularly useful for comparing different filesystem types or mount options.
IOzone offers comprehensive filesystem performance testing with support for various file operations and access patterns.
What IOzone tests:
IOzone is valuable for optimizing filesystem settings and identifying performance characteristics across different workloads.
The standard tool for measuring network throughput, jitter, and packet loss between systems.
What iperf3 tests:
iperf3 is essential for evaluating network performance between data centers or within infrastructure components.
An alternative to iperf3, nuttcp provides additional network testing capabilities.
What nuttcp tests:
nuttcp is particularly useful for evaluating network performance in more specialized network environments.
For measuring internet bandwidth to external locations, speedtest-cli provides a command-line interface to Speedtest.net.
What speedtest-cli Tests
speedtest-cli is valuable for evaluating external connectivity quality, particularly for services that interact with users over the internet.
For web servers and API endpoints, wrk provides powerful HTTP benchmarking capabilities.
What wrk Tests
wrk is essential for capacity planning and optimizing web applications and APIs.
Sysbench excels at testing database performance, particularly for MySQL/MariaDB and PostgreSQL.
What Sysbench Tests
Sysbench is invaluable for optimizing database configurations and validating performance after changes.
For PostgreSQL-specific benchmarking, pgbench provides detailed performance insights.
What pgbench Tests
pgbench is essential for PostgreSQL tuning and configuration optimization.
For systems with Intel processors, MLC provides detailed memory subsystem analysis.
What MLC Tests
MLC is particularly valuable for optimizing memory-intensive applications and understanding NUMA effects.
For high-performance computing workloads, the HPC Challenge Benchmark provides comprehensive performance evaluation.
What HPC Challenge Tests
The HPC Challenge is helpful for evaluating systems intended for scientific computing or other high-performance workloads.
| Tool | Category | Complexity | Installation | Real-world Correlation | Open Source | GUI Available |
|---|---|---|---|---|---|---|
| YABS | All-in-one | Low | None (script) | Medium | Yes | No |
| nench.sh | All-in-one | Low | None (script) | Medium | Yes | No |
| Phoronix Test Suite | All-in-one | High | Package | High | Yes | Yes |
| UnixBench | System | Medium | Build | Medium | Yes | No |
| Geekbench | CPU/Memory | Low | Binary | High | No | Yes |
| stress-ng | Stress Test | Medium | Package | Medium | Yes | No |
| stressapptest | Memory/IO | Medium | Package | Medium | Yes | No |
| Fio | Storage | High | Package | Very High | Yes | No |
| Bonnie++ | Storage | Medium | Package | High | Yes | No |
| IOzone | Storage | High | Package | High | Yes | No |
| iperf3 | Network | Medium | Package | Very High | Yes | No |
| nuttcp | Network | Medium | Package | Very High | Yes | No |
| speedtest-cli | Internet | Low | Package/pip | Very High | Yes | No |
| wrk | HTTP | Medium | Build | Very High | Yes | No |
| Sysbench | Database | High | Package | Very High | Yes | No |
| pgbench | PostgreSQL | Medium | Package | Very High | Yes | No |
| Intel MLC | Memory | Medium | Binary | High | No | No |
| HPC Challenge | HPC | Very High | Build | Very High | Yes | No |
Different scenarios call for different benchmarking approaches:
Ultimately, a combination of many of these tools provides the most complete picture of your system's capabilities.
To ensure your benchmarking results are useful:
These 18 Linux benchmarking tools provide comprehensive insights into your infrastructure's performance characteristics, helping you optimize deployments, troubleshoot bottlenecks, and make informed decisions.
For reliable infrastructure that consistently delivers on its performance promises, consider solutions like those offered by xTom (hello! that's us ;-), which provides dedicated servers, colocation, IP transit services, and more. Something you can verify with the benchmarking tools covered in this article.
For those who need flexible, scalable virtual servers, V.PS (xTom's VPS brand) offers NVMe-powered KVM VPS instances that deliver exceptional performance.
Whatever your hosting needs, these benchmarking tools will help ensure you're getting the performance you require for your applications and services.
Thanks for reading and have fun benchmarking!
Synthetic benchmarks measure raw system capabilities, while application benchmarks simulate real-world workloads. Both provide valuable insights—synthetic tests offer standardized comparison points, while application tests better predict actual performance for specific use cases.
Benchmark when deploying new systems, after hardware or significant software changes, and periodically (quarterly is common) to detect performance degradation. Also consider benchmarking during capacity planning exercises.
For specialized workloads, custom benchmarks using tools like Phoronix Test Suite's test creation capabilities or application-specific tools (e.g., pgbench for PostgreSQL or mysqlslap for MySQL) often provide more relevant insights than general-purpose benchmarks.
Virtualized environments often show more performance variability than bare metal. Look for performance patterns rather than absolute numbers, and consider "noisy neighbor" effects when analyzing unexpected results.
Intensive benchmarks consume significant resources and can impact production workloads. Always schedule resource-intensive benchmarking during maintenance windows or on staging systems that mirror production configurations.
For distributed systems, coordinated multi-node benchmarking using tools like distributed Phoronix instances or specialized tools like Distributed Jmeter provide more meaningful results than single-node tests.
While most benchmarking tools function similarly across distributions, there can be notable differences in package availability, default configurations, and even performance due to distribution-specific optimizations. Always check distribution-specific documentation when available, and consider package name differences when installing tools (apt for Debian/Ubuntu, yum for CentOS/RHEL 7, dnf for newer RPM-based systems, pacman for Arch, and zypper for SUSE).
Benchmarking helps establish performance baselines and identify scaling limits. By simulating increased load using tools like stress-ng or application-specific load generators, you can predict when infrastructure expansion will be necessary.
Cloud instance performance can vary significantly based on the provider, instance type, and even time of day. Running benchmarks at different times and days of the week can help identify performance variability patterns that might affect your applications.