How To Benchmark Your Server with YABS

Last updated: April 1st 2024

Servers running sluggish? Wonder if upgrading is worth it? Meet YABS - the free benchmarking tool that stress-tests every component of your system. This guide shows you how to unleash YABS' intense CPU, RAM, disk, and network trials on your hardware.

Whether you're a sysadmin pro or a hobbyist tinkerer, you'll learn to interpret YABS' metrics and use the results to unlock maximum performance. Put your server through its paces and get the cold, complex numbers on what needs an upgrade versus what's already firing on all cylinders. Let's dive into benchmarking!

What is YABS?

YABS.sh, short for "Yet Another Bench Script," is a tool for Linux servers that helps you measure their performance. Imagine it as a quick fitness test for your server.

In one go, it runs three mini-programs: Geekbench for CPU and overall system performance, iperf3 for network speed, and fio for disk speed.

It doesn't require installation and works on many popular Linux versions.  The results are displayed in plain text; you can even upload them to a website to see fancy charts.

How to Run YABS

To run the YABS script, you must download it and run it directly. However, you must have "curl" installed on your system. Curl is usually preinstalled in most Linux distros. However, if you are unsure, try installing it:

$ sudo apt update && sudo apt install curl -y

Then, proceed to download the YABS script:

$ curl -sL yabs.sh | bash

This command downloads the script for you and makes it executable. Once you download the script, the benchmarking process will start automatically. Several tests will be performed by YABS, such as:

  • Network Information
  • Network Speed
  • Disk Speed
  • CPU Benchmark

As you take the test, the terminal window will show you the benchmark's progress live. If you decide to run YABS on a production server, do it during off-peak hours. This way, you'll lessen the effect on your services and visitors.

Although YABS provides a simplified benchmarking process, there are several ways you can tailor it to suit your requirements:

Tweaking Benchmark Parameters

  • CPU Stress Test Duration:  By default, the CPU benchmark is conducted using Geekbench; however, you have the option to adjust the duration of the test using the -c flag, followed by the desired time in seconds. For instance, running ./yabs.sh -c 120 will execute the CPU test for 2 minutes.
     
  • Disk I/O Customization (fio): YABS utilizes fio to conduct disk I/O benchmarks. Unlike YABS, which relies on a set configuration, fio provides many customization possibilities. If you have experience with fio, you can design a personalized configuration file and indicate its location by using the -f flag in conjunction with YABS. This feature lets you fine-tune workload type, I/O size, and job quantity parameters.

 

Excluding Benchmarks

If you are solely concerned with CPU or network performance, you can utilize the -x flag and the benchmark name (for instance, ./yabs.sh -x cpu to exclude the CPU test).

Output Location

By default, the results are shown on the terminal. Nevertheless, you can redirect the output to a file for additional analysis. Use the > symbol and specify the desired filename (e.g., ./yabs.sh > benchmark_results.txt).

Interpreting Results From YABS

Once the tests have finished, YABS will generate a report for you. Let’s take a look and try to understand each section

image1.png

Basic System Information

This section briefly goes into the server’s specifications, such as CPU cores, RAM capacity, and operating system version.

IPv4/IPv6 Network Information

This section summarizes the network conditions of the server and the provider

Disk Speed

The speed is measured in MB/s (Megabytes per second) and shows how fast data can be read from and written to your storage device.

Network Speed

The speed at which data can be transferred to and from your server over the network is denoted in Gbit/s or Mbit/s (Gigabits or Megabits per second).

CPU Benchmark

The score is a numerical value that reflects the CPU's computational capacity. Higher scores indicate better performance.

You will find a link at the end of the result to view detailed information about the CPU benchmark conducted using Geekbench. Clicking on the link will show you information such as System Information Summary, Detailed Single-Core Performance Test, and Detailed Multi-Core Performance Test.

You can also share this link with people to share the benchmark results. Curious how Webdock’s servers fare? Check out the performance tests of every profile here.

Looking to optimize your server’s performance? Check out Webdock’s detailed performance and optimization guides here.

Common YABS Pitfalls

At first glance, regular benchmarking can seem tempting. After all, what could be easier than just adding a command and getting your server's real-time perceived performance?

However, as many seasoned developers and ops engineers will attest, falling into the trap of YABS can quickly lead you down a rabbit hole of technical debt and maintainability nightmares. In this section, we'll explore some common pitfalls associated with YABS so you’re aware of what to expect:

Disk Space Requirements

When running the YABS benchmarking script with insufficient disk space, the script may fail, and the benchmarks will only be partially completed. During the benchmark execution, YABS runs various tests that may require temporary files or write results, leading to errors if there's insufficient space for these files.

As benchmarks fail due to inadequate space, the entire YABS script might terminate prematurely with an error message indicating a disk space issue. Consequently, the generated report will need to be completed, making it impossible to get a comprehensive picture of the server's performance. To avoid such problems, checking the available disk space before running YABS and freeing up space if necessary is crucial.

Limited Benchmark Scope

While YABS concentrates on evaluating CPU utilization, disk input/output operations, and network throughput – which are undoubtedly essential elements – they represent merely a subset of the comprehensive metrics required to gauge the overall robustness of a server system.

You may need to conduct supplementary benchmark tests depending on your unique requirements. For instance, servers dedicated to database management could derive greater insights from performance assessments explicitly tailored to database operations.

Misinterpretation of Hardware vs. Software Bottlenecks

While YABS offers an overall perspective on system performance, it cannot identify the root cause of performance bottlenecks. A suboptimal disk I/O score could stem from a sluggish hard drive or fragmented storage. To distinguish between hardware constraints and software inefficiencies, you may require additional diagnostic utilities that provide more granular insights.

External Factors Affecting Results

External factors such as varying internet speeds or network congestion can impact the accuracy of network performance benchmarks. To ensure more reliable results, try conducting network tests at various times throughout the day or in a controlled testing environment.

Performance Implications

Exercise caution when utilizing YABS on production servers. The CPU stress test may strain system resources, affecting current tasks. Conducting benchmarks during non-peak hours or on staging servers is recommended to reduce potential disruptions.

Conclusion

YABS is a powerful tool for gaining quick insights into your server's performance. By understanding its functionalities and potential pitfalls, you can leverage YABS effectively to identify performance bottlenecks and optimize your server's health.

Remember, YABS is a starting point – for a deeper dive, consider combining it with stress testing tools and server monitoring for a well-rounded performance evaluation. So, fire up your terminal, unleash the YABS benchmark, and see how your server muscles up!

Meet Aayush, a WordPress website designer with almost a decade of experience who crafts visually appealing websites and has a knack for writing engaging technology blogs. In his spare time, he enjoys illuminating the minds around him.

Related articles