脚本简介

一个使用 fio、iperf3 和 Geekbench 估计 Linux 服务器性能的简单 bash 脚本

脚本用法

# curl -sL yabs.sh | bash

或者

# wget -qO- yabs.sh | bash

该脚本已在以下 Linux 发行版上进行了测试:CentOS 6+、Debian 8+、Fedora 30 和 Ubuntu 16.04+。它旨在不需要安装任何外部依赖项,也不需要提升运行权限。

本地 fio/iperf3 包:如果测试系统已经安装了 fio 和/或 iperf3,则本地包将优先于预编译的二进制文件。

实验性 ARM 兼容性:引入了初始 ARM 兼容性,但由于在不同 ARM 设备上的测试有限,因此并不认为完全稳定。报告任何错误或问题。

高带宽使用注意事项:默认情况下,此脚本将执行许多 iperf 网络测试,这将尝试将网络端口最大化每个位置约 20 秒(每个方向 10 秒)。低带宽服务器(例如 NAT VPS)应考虑使用-r标志(用于减少 iperf 位置)或-i标志(完全禁用网络测试)运行此脚本。

脚本解析

  • fio – 可用的最全面的 I/O 测试软件,fio 能够以多种方法和多种选项评估磁盘性能。作为该脚本的一部分,使用 4k、64k、512k 和 1m 块大小进行了四次随机读写 fio 磁盘测试。这些测试旨在以 50/50 分割(每次测试 50% 读取和 50% 写入)评估接近真实世界(使用随机)场景中的磁盘吞吐量。
  • iperf3 – 测试不同位置下载和上传速度的行业标准。此脚本使用具有 8 个并行线程的 iperf3 并测试下载和上传速度。如果 iperf 服务器在 5 次尝试后繁忙,则跳过该位置/方向的速度测试。
  • Geekbench – Geekbench 是一个衡量系统性能的基准测试程序,广泛用于技术社区。显示 Web URL 以便能够查看完整的测试和单独的基准测试结果,并允许与其他 geekbench 的系统进行比较。将 Geekbench 结果添加到您的 Geekbench 配置文件的声明 URL 将写入执行此脚本的目录中的文件。默认情况下,Geekbench 5 是唯一执行的 Geekbench 测试,但是,也可以通过传递适当的标志来切换 Geekbench 4。

默认情况下,脚本会运行下面下一节中描述的所有三个测试。如果您希望跳过一项或多项测试,请使用以下命令:

curl -sL yabs.sh | bash -s -- -{bfdighr49}
  • -b此选项强制使用来自 repo 的预编译二进制文件而不是本地包
  • -f/-d这个选项禁用fio(磁盘性能)测试
  • -i此选项禁用 iperf(网络性能)测试
  • -g此选项禁用 Geekbench(系统性能)测试
  • -h此选项打印带有用法、检测到的标志和本地包 (fio/iperf) 状态的帮助消息
  • -r此选项减少 iperf 位置的数量 (Online.net/Clouvider LON+NYC) 以减少带宽使用
  • -4此选项会覆盖 Geekbench 5 性能测试并改为运行 Geekbench 4 测试
  • -9除了 Geekbench 5 测试之外,此选项还运行 Geekbench 4 测试

选项可以组合在一起跳过多个测试,即-fg跳过磁盘和系统性能测试(实际上只测试网络性能)。

Geekbench 许可证密钥:可以在 Geekbench 测试期间使用 Geekbench 许可证密钥来解锁所有功能。只需将许可证的电子邮件和密钥放在一个名为geekbench.license的文件中。echo "email@domain.com ABCDE-12345-FGHIJ-57890" > geekbench.license

脚本示例

# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #
#              Yet-Another-Bench-Script              #
#                     v2020-09-21                    #
# https://github.com/masonr/yet-another-bench-script #
# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #

Mon 21 Sep 2020 12:31:13 AM EDT

Basic System Information:
---------------------------------
Processor  : Intel(R) Xeon(R) E-2276G CPU @ 3.80GHz
CPU cores  : 12 @ 800.087 MHz
AES-NI     : ✔ Enabled
VM-x/AMD-V : ✔ Enabled
RAM        : 15Gi
Swap       : 14Gi
Disk       : 865G

fio Disk Speed Tests (Mixed R/W 50/50):
---------------------------------
Block Size | 4k            (IOPS) | 64k           (IOPS)
  ------   | ---            ----  | ----           ----
Read       | 445.04 MB/s (111.2k) | 475.05 MB/s   (7.4k)
Write      | 446.22 MB/s (111.5k) | 477.55 MB/s   (7.4k)
Total      | 891.26 MB/s (222.8k) | 952.60 MB/s  (14.8k)
           |                      |
Block Size | 512k          (IOPS) | 1m            (IOPS)
  ------   | ---            ----  | ----           ----
Read       | 474.42 MB/s    (926) | 472.32 MB/s    (461)
Write      | 499.63 MB/s    (975) | 503.77 MB/s    (491)
Total      | 974.05 MB/s   (1.9k) | 976.10 MB/s    (952)

iperf3 Network Speed Tests (IPv4):
---------------------------------
Provider        | Location (Link)           | Send Speed      | Recv Speed
                |                           |                 |
Clouvider       | London, UK (10G)          | 1.19 Gbits/sec  | 2.39 Gbits/sec
Online.net      | Paris, FR (10G)           | 2.35 Gbits/sec  | 2.04 Gbits/sec
WorldStream     | The Netherlands (10G)     | 2.17 Gbits/sec  | 1.29 Gbits/sec
Wifx            | Zurich, CH (10G)          | 1.28 Gbits/sec  | 522 Mbits/sec
Biznet          | Jakarta, Indonesia (1G)   | 19.4 Mbits/sec  | 41.8 Mbits/sec
Clouvider       | NYC, NY, US (10G)         | 9.40 Gbits/sec  | 9.41 Gbits/sec
Velocity Online | Tallahassee, FL, US (10G) | 2.39 Gbits/sec  | 2.94 Gbits/sec
Clouvider       | Los Angeles, CA, US (10G) | 2.40 Gbits/sec  | 2.89 Gbits/sec
Iveloz Telecom  | Sao Paulo, BR (2G)        | 136 Mbits/sec   | 192 Mbits/sec

iperf3 Network Speed Tests (IPv6):
---------------------------------
Provider        | Location (Link)           | Send Speed      | Recv Speed
                |                           |                 |
Clouvider       | London, UK (10G)          | 803 Mbits/sec   | 2.09 Gbits/sec
Online.net      | Paris, FR (10G)           | 2.32 Gbits/sec  | 2.20 Gbits/sec
WorldStream     | The Netherlands (10G)     | 1.95 Gbits/sec  | 1.49 Gbits/sec
Wifx            | Zurich, CH (10G)          | 168 Mbits/sec   | 579 Mbits/sec
Clouvider       | NYC, NY, US (10G)         | 9.28 Gbits/sec  | 9.28 Gbits/sec
Clouvider       | Los Angeles, CA, US (10G) | 2.80 Gbits/sec  | 2.90 Gbits/sec

Geekbench 4 Benchmark Test:
---------------------------------
Test            | Value
                |
Single Core     | 6035
Multi Core      | 24473
Full Test       | https://browser.geekbench.com/v4/cpu/15770150

Geekbench 5 Benchmark Test:
---------------------------------
Test            | Value
                |
Single Core     | 1348
Multi Core      | 5857
Full Test       | https://browser.geekbench.com/v5/cpu/3844555