All new Registrations are manually reviewed and approved, so a short delay after registration may occur before your account becomes active.
Benchy.pw | Simple server benchmarking script based on YABS
Inspired by masonr's yet-another-bench-script, I decided to wrote a benchmark script based on yabs.
This script also address feature request from several member here. Here is github link → https://github.com/L1so/benchy. This script uses same parameter as yabs, so the result shouldn't differ much.
Download
Via wget
wget -qO- https://raw.githubusercontent.com/L1so/benchy/main/benchy | sh -s -- -t
Via curl
curl -Ls https://raw.githubusercontent.com/L1so/benchy/main/benchy | sh -s -- -t
Feature
- Basic server information
- IPv4 Check
- IPv6 Check
- Server Geolocation
- Server Uptime
- Fallback to
wget
ifcurl
is not installed (this applied to Debian based system, wherecurl
is not installed by default) - Works across shell (bash, dash, sh, ksh, etc.)
Output
Click to expand
# # # # # # # # # # # # # # # # # # #
# Benchy v1.1 #
# https://github.com/L1so/benchy #
# AIO Benchmarking tool #
# # # # # # # # # # # # # # # # # # #
# 12 Apr 2022 15:34 WIB #
# # # # # # # # # # # # # # # # # # #
System Information
---------------------
OS : Ubuntu 14.04.6 LTS
Uptime : 77 Days, 20 Hours, 45 Minute, 22 Seconds
Location : Indonesia
IPv4 : ✔ Enabled
IPv6 : ✔ Enabled
Processor Information
---------------------
Model : QEMU Virtual CPU version 2.5+
Core : 4 @ 2199.998 MHz
AES-NI : ❌ Disabled
VM-x/AMD-V : ❌ Disabled
Virt : kvm
Disk & Memory Usage
---------------------
Disk : 45.15 GiB
Disk Usage : 10.89 GiB (26% Used)
Mem : 7.79 GiB
Mem Usage : 5742 MB (72% Used)
Swap : 3.99 GiB
Disk Performance Check (50/50 R/W):
+---------------------------------------------------------------------------+
| Size | Read | Write | Total | IOPS (R,W,T) |
+===========================================================================+
| 4k | 26.65 MB/s | 26.66 MB/s | 53.31 MB/s | 6.8k | 6.8k | 13.6k |
+---------------------------------------------------------------------------+
| 64k | 367.04 MB/s | 368.97 MB/s | 736.02 MB/s | 5.9k | 5.9k | 11.8k |
+---------------------------------------------------------------------------+
| 512k | 669.46 MB/s | 705.03 MB/s | 1.34 GB/s | 1.3k | 1.4k | 2.7k |
+---------------------------------------------------------------------------+
| 1m | 667.11 MB/s | 711.54 MB/s | 1.34 GB/s | 0.7k | 0.7k | 1.4k |
+---------------------------------------------------------------------------+
Network Performance Test (IPv4):
+---------------------------------------------------------------------------+
| Provider | Location | Send | Receive |
+===========================================================================+
| Clouvider | London, UK | 185 Mbits/sec | 222 Mbits/sec |
+---------------------------------------------------------------------------+
| Airstream | Wisconsin, USA | 176 Mbits/sec | 149 Mbits/sec |
+---------------------------------------------------------------------------+
| Uztelecom | Tashkent, Uzbekistan | 145 Mbits/sec | 179 Mbits/sec |
+---------------------------------------------------------------------------+
| Online.net | Paris, France | 177 Mbits/sec | 235 Mbits/sec |
+---------------------------------------------------------------------------+
| WebHorizon | Singapore | 274 Mbits/sec | 307 Mbits/sec |
+---------------------------------------------------------------------------+
Network Performance Test (IPv6):
+---------------------------------------------------------------------------+
| Provider | Location | Send | Receive |
+===========================================================================+
| Clouvider | London, UK | 96.7 Mbits/sec | 79.7 Mbits/sec |
+---------------------------------------------------------------------------+
| Airstream | Wisconsin, USA | 67.0 Mbits/sec | 63.6 Mbits/sec |
+---------------------------------------------------------------------------+
| Uztelecom | Tashkent, Uzbekistan | 86.7 Mbits/sec | 69.2 Mbits/sec |
+---------------------------------------------------------------------------+
| Online.net | Paris, France | 97.0 Mbits/sec | 74.4 Mbits/sec |
+---------------------------------------------------------------------------+
| WebHorizon | Singapore | 102 Mbits/sec | 92.2 Mbits/sec |
+---------------------------------------------------------------------------+
+-----------------------------------------------+
| Geekbench 5.4.4 Tryout for Linux x86 (64-bit) |
+===============================================+
| Type of Test | Score |
+===============================================+
| Single Core | 514 |
+-----------------------------------------------+
| Multi Core | 1871 |
+-----------------------------------------------+
| https://browser.geekbench.com/v5/cpu/14265681 |
+-----------------------------------------------+
So far I have test this script only inside lxc container, as I don't have access to non-Ubuntu distro on all my server. Some of distro I can confirm working.
- CentOS
- Debian
- Alma Linux
- RockyLinux
- Fedora
This script also works inside default Alpine Linux build (sh shell and musl libc), with the exception of Geekbench— as I have not found a way to port it to musl library.
I'd love to hear your feedback, thank you for your attention
Comments
Nice
Your output style is very confusing, especially "Disk Performance Check". Yabs is easy to read.
R, W, T actually is acronym for read write total. When I first wrote this, I also have a hard time decide the "correct" style, so I just put them into table like this.
If you have a suggestion to fix that, Im all ears.
Just remove the table altogether. Make it look clean. Yabs style is good as is.
Imho, this is prettier than Mason's YABS for me. Thank you @Liso
Testing my GreenCloud VPS
looks different from YABS but with more useful info. thanks for that
Cool, will definitely try this out
looks good, will try it out as well :-)
If you're doing tweaks anyway, adding fstype to the disc benchmark header could be useful.
I'm curious to know where the disc benchmark decides to write to in a multi-partition layout. Easy enough to check, I guess; just never taken the time.
Looks neat, although something I've desired from these benchmark scripts is that they include a way to meter ping latency. Maybe a Feature Request? :P
Maybe some possibility of benchmarking all disks and information that there are several disks in the system? There are servers where you get 20 GB SSD and 500 GB HDD and yabs shows the sum of the disks and the speed of the first disk.
If anyone catch a formatting error, > @JeDaYoshi said:
This is definitely doable (and it's actually in my next to do list), I'm planning to use Ookla speedtest cli, it conveniently include latency on its metrics.
Here it is on openSUSE
How about adding latency to test to know if how good is server for particular region ?
ie. Ping
Ookla speedtest CLI could work, but it'd only meter the latency of what it thinks is the closest region. Running a simple
ping
to the iperf3 servers (implying they answer accordingly) then throwing it into the table could work, and would be more ideal IMO.Or both, actually, but including Ookla speedtest means you'd need to download a closed-source binary (unless you use the unofficial
speedtest-cli
, which has varied results), outside of the fact of contacting Ookla itself instead of providers directly.Read a bit further.
Like this?
Good stuff. I like the table layout more.
Also for everyone else the script will disk bench whatever your current working directory is. So if you want to test a different drive, just run script in that drives mounted folder.
You're right, I found out ookla speedtest binary require you to accept their ToS (by pressing
y
on terminal), although I can bypass that easily, I'm not sure I can do that freely, I have to ask for user consent to do so.OTOH, I'll look into the
ping
solution, it makes more sense to me. I believe I can ping each server and then put latency into the table. I wonder why I hadn't thought of that beforeTa. It's not a folder - grr.
Fstype would still be useful, so that it cuts down on variables.
That's a great idea, I'll definitely consider this.
By fstype, did you mean the like of
ext4
,ntfs
,zfs
? I ask because your comment seems to suggests block device e.g./dev/sda
,/dev/sdb
.Yes, something like this but would be nice if he integrates , this way single test script can give little more info about the server.
Try to make geolocation thing clear for latency data.
Can you add a flag where the bench result can be uploaded to your server and printed as an URL at the end of the result?
Looks really nice, thanks!
Virmach tokyo on node 40
Yes, not block but fstype (ext2,ext4,xfs etc.)
However, if covering multiple disc testing, then it may show as..
/dev/vda2 ext4
/dev/vdb1 xfs
Has anyone tested this on WSL?
Add a flag to display the IP instead of Enabled, but not by default since most people will copy/paste into forums. But it's nice for personal use.
Also, I don't like the table style display and prefer the other style.
If you found following program to be working on WSL.
Then I don't see why it wouldn't work, but I can't vouch for it result as I don't have Windows device to test— still it's a interesting question.
Can be done, just need to grep the public IP for each version.
About style, what you would rather have ? Something like yabs?