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
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
-
Optimizing Network Speed on Your Webdock KVM Server
A mini article with some kernel tweaks to improve network performance on your server
Last updated: September 6th 2024
-
How to configure Crontab on Linux
In this article we detail how Crontab works and all the available options for configuration along with correct syntax and examples.
Last updated: January 4th 2024
-
How to free up disk space on an Ubuntu Nginx or Apache Web Server
This article outlines useful commands you can run on your server in order to free up disk space.
Last updated: October 16th 2023
-
How to monitor webdock server resources using Prometheus, Grafana, Node Exporter and Prometheus Alert Manager
This guide includes the step by step procedure of installing different packages like Prometheus, Grafana, Node exporter and Alert Manager.
Last updated: December 7th 2022
-
How to Disable IPv6 on Your Webdock Server
The article explain how to disable IPv6 on your Webdock server, both temporarily and permanently.
Last updated: August 13th 2024
-
Automating Initial Server Configuration with Ansible
Read our new article: Learn how to automate your cloud server configuration using Ansible.
Last updated: July 19th 2023
-
Top Tools to Install on Your Ubuntu Web Server
A list of important tools that you can install on your production Ubuntu web server
Last updated: July 19th 2023
-
Systemd Units - A Comprehensive Guide for Linux Admins
A detailed guide on systemd internals for Linux admins
Last updated: August 13th 2024
-
A Quick Guide to Managing Systemd Services
A short guide that helps you manage systemd services
Last updated: August 13th 2024
-
How to Benchmark PHP Performance on Your Webdock Server
Instructions for bechmarking PHP performance on your Webdock server
Last updated: August 29th 2024