Yet-Another-Bench-Script

尝试创建另一个 Linux 服务器基准性能测试脚本...
YABS.sh 脚本可自动执行业内最好的基准性能测试工具。包括几项测试来检查服务器关键区域的性能:fio 的磁盘性能、iperf3 的网络性能以及 Geekbench 的 CPU / 内存性能。该脚本设计为不需要安装任何外部依赖项,也不需要提升权限即可运行。如果您希望添加任何功能,请随时提交描述您的功能请求的问题,或分叉项目并提交 PR!
What's New With YABS?
- 27 二月 2023 - 新发布的 Geekbench 6 被添加为默认的 Geekbench 测试。
- 26 二月 2023 - 使用 ip-api 将网络信息添加到 YABS 输出中。
- 15 八月 2022 - 添加了 JSON 输出/上传支持,用于导出或自动上传 YABS 结果以进行共享。
如何运行?
curl -sL https://yabs.sh | bash
或者
wget -qO- yabs.sh | bash
- 本地 fio/iperf3 软件包:如果被测试的系统已经安装了 fio 和/或 iperf3,则本地软件包将优先于预编译的二进制文件。
- 实验性 ARM 兼容性:已引入初始 ARM 兼容性,但由于在不同 ARM 设备上的测试有限,因此并不被认为是完全稳定的。报告任何错误或问题。
- 高带宽使用通知:默认情况下,此脚本将执行许多 iperf 网络测试,这些测试将尝试在每个位置最大化网络端口 ~20 秒(每个方向 10 秒)。低带宽服务器(例如 NAT VPS)应考虑使用 -r 标志(以减少 iperf 位置)或 -i 标志(以完全禁用网络测试)运行此脚本。
- Windows 用户:此脚本可以使用适用于 Linux 的 Windows 子系统 v2 (WSL 2) 在 Windows 系统上运行。WSLv1 将无法正确运行脚本和二进制文件。
Flags (跳过测试、减少 iperf 位置、Geekbench 4/5/6 等)
curl -sL https://yabs.sh | bash -s -- -flags
Flag | 描述 |
---|---|
-b | 强制使用来自 repo 的预编译二进制文件而不是本地软件包 |
-f/-d | 禁用 fio(磁盘性能)测试 |
-i | 禁用 iperf (网络性能) 测试 |
-g | 禁用 Geekbench(系统性能)测试 |
-n | 跳过网络信息查找并打印出来 |
-h | 打印包含使用情况、检测到的标志和本地包 (fio/iperf) 状态的帮助消息 |
-r | 减少 iperf 位置 (Scaleway/Clouvider LON NYC) 的数量以减少带宽使用 |
-4 | 运行 Geekbench 4 测试并禁用 Geekbench 6 测试 |
-5 | 运行 Geekbench 5 测试并禁用 Geekbench 6 测试 |
-9 | 运行 Geekbench 4 和 5 测试,而不是 Geekbench 6 测试 |
-6 | 如果使用了以下任何一项,请重新启用 Geekbench 6 测试:-4、-5 或 -9(-6 标志必须是最后一个,才能不被覆盖) |
-j | 将结果的 JSON 表示形式打印到屏幕上 |
-w <filename> | 使用提供的文件名将 JSON 结果写入文件 |
-s <url> | 将结果的 JSON 表示形式发送到指定的 URL(请参阅下面的部分) |
选项可以组合在一起以跳过多个测试,即 -fg 跳过磁盘和系统性能测试(实际上只测试网络性能)。
Geekbench 许可证密钥: 在 Geekbench 测试期间,可以使用 Geekbench 许可证密钥来解锁所有功能。只需将许可证的电子邮件和密钥放在名为 geekbench.license 的文件中即可。echo “[email protected] ABCDE-12345-FGHIJ-57890” > geekbench.license
提交 JSON 结果
运行此脚本的结果可以 JSON 格式发送到您选择的基准测试结果网站。调用 -s 标志并将 URL 传递到应将结果提交到的位置:
curl -sL https://yabs.sh | bash -s -- -s "https://example.com/yabs/post"
通过输入以逗号连接的每个站点,可以将 JSON 结果发送到多个终端节点 (e.g. "https://example.com/yabs/post,http://example.com/yabs2/post").
支持提交 YABS JSON 结果的站点:
站点 | 示例命令 |
---|---|
YABSdb | curl -sL https://yabs.sh | bash -s -- -s "https://yabsdb.com/add" |
VPSBenchmarks | curl -sL https://yabs.sh | bash -s -- -s https://www.vpsbenchmarks.com/yabs/upload |
示例 JSON 输出: example.json。
进行的测试
FIO - 最全面的 I/O 测试软件,FIO 能够以多种方法和多种选项评估磁盘性能。作为此脚本的一部分,执行了四次随机读取和写入 fio 磁盘测试,块大小为 4k、64k、512k 和 1m。这些测试旨在评估近乎真实的 (使用随机) 场景中的磁盘吞吐量,其中 50/50 拆分(每个测试 50% 读取和 50% 写入)。
iperf3 - 测试下载和上传到各个位置的速度的行业标准。此脚本使用具有 8 个并行线程的 iperf3 并测试下载和上传速度。如果 iperf 服务器在 5 次尝试后繁忙,则会跳过该位置/方向的速度测试。
Geekbench - Geekbench 是一个测量系统性能的基准测试程序,在技术社区中被广泛使用。显示 Web URL 以便能够查看完整的测试和单个基准测试结果,并允许与其他 geekbench 系统进行比较。将 Geekbench 结果添加到 Geekbench 配置文件的声明 URL 将写入执行此脚本的目录中的文件中。默认情况下,Geekbench 6 是唯一执行的 Geekbench 测试,但是,也可以通过传递适当的标志来打开 Geekbench 4 和/或 5。
安全通知
此脚本依赖于外部二进制文件来完成性能测试。网络 (iperf3) 和磁盘 (fio) 测试使用我自己使用 Holy Build Box 编译环境编译的二进制文件,以确保二进制的可移植性。这样做的原因包括确保标准化(可解析)输出、允许同时支持 32 位和 64 位架构、绕过编译和/或安装先决条件的需要,以及其他原因。对于系统测试,将下载、提取 Geekbench tarball 并运行生成的二进制文件。使用此脚本的风险由您自己承担,就像使用网上公开提供的任何脚本一样。有关二进制文件的其他信息,包括编译说明和步骤,可以在 bin 目录的 README 页中找到。
示例输出
# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #
# Yet-Another-Bench-Script #
# v2023-04-23 #
# https://github.com/masonr/yet-another-bench-script #
# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #Sun 23 Apr 2023 01:41:14 PM EDT
Basic System Information:
---------------------------------
Uptime : 342 days, 18 hours, 35 minutes
Processor : Intel(R) Xeon(R) E-2276G CPU @ 3.80GHz
CPU cores : 12 @ 4693.667 MHz
AES-NI : ✔ Enabled
VM-x/AMD-V : ✔ Enabled
RAM : 15.5 GiB
Swap : 14.9 GiB
Disk : 864.5 GiB
Distro : Ubuntu 20.04.6 LTS
Kernel : 5.4.0-110-generic
VM Type : NONE
IPv4/IPv6 : ✔ Online / ✔ OnlineIPv6 Network Information:
---------------------------------
ISP : Clouvider Limited
ASN : AS62240 Clouvider
Host : USA Network
Location : New York, New York (NY)
Country : United Statesfio Disk Speed Tests (Mixed R/W 50/50):
---------------------------------
Block Size | 4k (IOPS) | 64k (IOPS)
------ | --- ---- | ---- ----
Read | 405.41 MB/s (101.3k) | 407.96 MB/s (6.3k)
Write | 406.48 MB/s (101.6k) | 410.11 MB/s (6.4k)
Total | 811.90 MB/s (202.9k) | 818.08 MB/s (12.7k)
| |
Block Size | 512k (IOPS) | 1m (IOPS)
------ | --- ---- | ---- ----
Read | 380.21 MB/s (742) | 394.55 MB/s (385)
Write | 400.41 MB/s (782) | 420.82 MB/s (410)
Total | 780.62 MB/s (1.5k) | 815.37 MB/s (795)iperf3 Network Speed Tests (IPv4):
---------------------------------
Provider | Location (Link) | Send Speed | Recv Speed | Ping
----- | ----- | ---- | ---- | ----
Clouvider | London, UK (10G) | 1.61 Gbits/sec | 2.39 Gbits/sec | 77.5 ms
Scaleway | Paris, FR (10G) | busy | 2.25 Gbits/sec | 83.3 ms
Clouvider | NYC, NY, US (10G) | 9.10 Gbits/sec | 8.85 Gbits/sec | 1.21 msiperf3 Network Speed Tests (IPv6):
---------------------------------
Provider | Location (Link) | Send Speed | Recv Speed | Ping
----- | ----- | ---- | ---- | ----
Clouvider | London, UK (10G) | 2.00 Gbits/sec | 21.1 Mbits/sec | 76.7 ms
Scaleway | Paris, FR (10G) | 2.66 Gbits/sec | 1.56 Gbits/sec | 75.9 ms
Clouvider | NYC, NY, US (10G) | 3.42 Gbits/sec | 7.80 Gbits/sec | 1.15 msGeekbench 4 Benchmark Test:
---------------------------------
Test | Value
|
Single Core | 5949
Multi Core | 23425
Full Test | https://browser.geekbench.com/v4/cpu/16746501Geekbench 5 Benchmark Test:
---------------------------------
Test | Value
|
Single Core | 1317
Multi Core | 5529
Full Test | https://browser.geekbench.com/v5/cpu/21102444Geekbench 6 Benchmark Test:
---------------------------------
Test | Value
|
Single Core | 1549
Multi Core | 5278
Full Test | https://browser.geekbench.com/v6/cpu/1021916YABS completed in 12 min 49 sec