性能测试
性能测试是通过统一的程序来衡量性能并将结果与其他系统的结果或广泛接受的标准进行比较的行为。这种评估系统性能的统一方法可以帮助回答诸如以下问题:
- 系统是否按应有的方式运行?
- 应使用哪个驱动程序版本以获得最佳性能?
- 系统是否能够执行任务 x?
许多工具可用于确定系统性能,以下列表提供了一些可用的工具。
独立工具
UnixBench
安装 unixbenchAUR,要运行基准测试,请运行 ubench。
参见
- https://github.com/kdlucas/byte-unixbench
- https://github.com/kdlucas/byte-unixbench/blob/master/UnixBench/USAGE
interbench
interbench 是一个旨在衡量 Linux 中交互性的应用程序。它旨在衡量 Linux 内核设计变更或系统配置变更(如 CPU、I/O 调度程序以及文件系统变更和选项)的效果。
interbench 在 AUR 中可用: interbenchAUR。
参见
fio
fio (Flexible I/O Tester,灵活 I/O 测试器)是一个实用程序,可以模拟各种工作负载,例如使用异步 I/O 发出读取的多个线程。Fio 产生许多线程或进程,根据用户指定执行特定类型的 I/O 操作。文档
用法示例
# fio --filename=/mnt/test.fio --size=8GB --direct=1 --rw=randrw --bs=4k --ioengine=libaio --iodepth=256 --runtime=120 --numjobs=4 --time_based --group_reporting --name=iops-test-job --eta-newline=1
ttcp
ttcp (Test TCP,测试 TCP) 测量任何网络连接上的点对点带宽。该程序必须在要确定带宽的两个节点上都提供。
可以在 AUR 中找到 ttcp 的各种变体
iperf
iperf 是一种易于使用的点对点带宽测试工具,可以使用 TCP 或 UDP。它具有格式良好的输出和并行测试模式。
iperf 可以安装,或者可以使用 iperf3 获得 iperf 的不同版本。
time
time(1) 命令提供有关命令运行的计时统计信息,方法是显示调用和终止之间经过的时间。time 包含 time
命令,一些 shell 提供 time
作为内置命令。
$ time tar -zxvf archive.tar.gz
hdparm
可以使用 hdparm (hdparm) 对存储介质进行基准测试。将 hdparm 与 -Tt
开关配合使用,可以对顺序读取进行计时。此方法独立于分区对齐!
# hdparm -Tt /dev/sdX
/dev/sdX: Timing cached reads: x MB in y seconds = z MB/sec Timing buffered disk reads: x MB in y seconds = z MB/sec
gnome-disks
在 gnome-disk-utility 软件包中包含一个名为 gnome-disks 的图形基准测试,它将提供最小/最大/平均读取量以及平均访问时间和漂亮的图形显示。此方法独立于分区对齐!
# gnome-disks
用户将需要通过 GUI 导航到基准测试按钮(“更多操作...” > “基准测试卷...”)。 示例
KDiskMark
kdiskmark 是一个 HDD 和 SSD 基准测试工具,具有非常友好的图形用户界面。KDiskMark 及其预设和强大的 GUI 调用 Flexible I/O Tester 并处理输出,以提供易于查看和解释的综合基准测试结果。
systemd-analyze
$ systemd-analyze plot > boot.svg
将绘制一个详细的图形,其中包含启动顺序:内核时间、用户空间时间、每个服务所花费的时间。示例
dd
dd 实用程序可用于测量读取和写入。此方法取决于分区对齐!换句话说,如果您未能正确对齐分区,则在此处将看到此事实,因为您正在写入和读取已挂载的文件系统。
首先,进入 SSD 上至少有 1.1 GB 可用空间的目录(以及一个为您的用户提供 wrx 权限的目录),并写入一个测试文件以测量写入速度并为设备提供读取内容
$ dd if=/dev/zero of=/path/to/SSD/tempfile bs=1M count=1024 conv=fdatasync,notrunc status=progress
1024+0 records in 1024+0 records out v bytes (w MB, x MiB) copied, y s, z MB/s
接下来,清除缓冲区缓存以准确测量直接从设备读取的速度
# echo 3 > /proc/sys/vm/drop_caches $ dd if=tempfile of=/dev/null bs=1M count=1024 status=progress
1024+0 records in 1024+0 records out v bytes (w MB, x MiB) copied, y s, z MB/s
现在最后一个文件在缓冲区中,重复该命令以查看缓冲区缓存的速度
$ dd if=tempfile of=/dev/null bs=1M count=1024 status=progress
1024+0 records in 1024+0 records out v bytes (w MB, x MiB) copied, y s, z MB/s
最后,删除临时文件
$ rm tempfile
dcfldd
Dcfldd 不会像旧的 dd 那样打印 MB/s 的平均速度,但使用 time 您可以解决这个问题。
对清除磁盘的运行进行计时
# time dcfldd if=/dev/zero of=/dev/sdX bs=4M
18944 blocks (75776Mb) written.dcfldd:: No space left of device real 16m17.033s user 0m0.377s sys 0m51.160s
通过将 dcfldd 命令的输出除以秒为单位的时间来计算 MB/s。对于此示例:75776Mb / (16.4 分钟 * 60) = 77.0 MB/s。
7z
7z 基准测试命令可用于测量 MIPS 中的 CPU 速度,还可以检查 RAM 是否有错误。只需安装 p7zip 并运行以下命令。更多详细信息请访问 [1]。
$ 7z b
peakperf
peakperf-gitAUR 是一个微基准测试程序,可在 x86_64 CPU 上实现峰值性能。某些问题可能会降低 CPU 提供的性能,例如 CPU 散热。使用 peakperf,您可以检查 CPU 是否提供了其能够提供的全部功率。
您可以使用 CPU 计算应获得的性能(以 GFLOP/s 为单位测量)(请参阅 [2]),并将其与 peakperf 给您的性能进行比较。如果两个值相同(或非常相似),则您的 CPU 行为应如预期。
cryptsetup
cryptsetup 基准测试可用于测量各种加密算法(密码)的速度。
$ cryptsetup benchmark
软件套件
Bonnie++
bonnie++ 是 原始 Bonnie 基准测试套件的 C++ 重写,旨在执行硬盘驱动器和文件系统性能的几项测试。
参见
IOzone
IOzone 对于执行供应商计算机平台的广泛文件系统分析非常有用。
以下可以近似于 CrystalDiskMark(一种流行的 Windows 基准测试实用程序)的几项测试的输出
- 顺序 1M 读/写:
iozone -e -I -s 1g -r 1m -i 0 -i 1
- 顺序 128k 读/写:
iozone -e -I -s 1g -r 128k -i 0 -i 1
- 随机 4k 读/写:
iozone -e -I -s 1g -r 4k -i 0 -i 2 -i 1
结果将以 Kb/s 为单位,因此除以 1024 可将其转换为 MB/s。
另请参阅 BBS 文章: iozone to evaluate I/O schedulers... results NOT what you'd expect!。
HardInfo
hardinfo2AUR 可以收集有关系统硬件和操作系统的信息,执行基准测试,并以 HTML 或纯文本格式生成可打印的报告。HardInfo 执行 CPU 和 FPU 基准测试,并具有非常简洁的基于 GTK 的界面。
Phoronix Test Suite
Phoronix Test Suite 是最全面的测试和基准测试平台,它提供了一个可扩展的框架,可以轻松地添加新测试。该软件旨在以清晰、可重现且易于使用的方式有效地执行定性和定量基准测试。
Phoronix Test Suite 基于 Phoronix.com 自 2004 年以来开发的广泛测试和内部工具,以及来自领先的一级计算机硬件和软件供应商的支持。该软件是开源的,并根据 GNU GPLv3 获得许可。
最初为自动化 Linux 测试而开发,此后 Phoronix Test Suite 添加了对 OpenSolaris、Apple macOS、Microsoft Windows 和 BSD 操作系统的支持。Phoronix Test Suite 由一个轻量级处理核心 (pts-core) 组成,每个基准测试都包含一个基于 XML 的配置文件和相关的资源脚本。从基准测试安装到实际基准测试,再到重要硬件和软件组件的解析过程都是高度自动化的且完全可重复的,仅要求用户确认操作。
Phoronix Test Suite 与 OpenBenchmarking.org 接口,作为一个协作网络平台,用于集中存储测试结果、共享测试配置文件和结果、高级分析功能以及其他功能。Phoromatic 是一个企业组件,用于协调跨多个系统的测试执行,并具有远程管理功能。
可以使用软件包 phoronix-test-suiteAUR 安装 此套件。还有一个开发版本,可使用 phoronix-test-suite-gitAUR。
S
S,一个 I/O 基准测试套件,是一个用于测量存储 I/O 性能的小型脚本集合。
下载或克隆该项目,安装其依赖项并以 root 身份运行它(更改磁盘调度程序需要权限)。
s-tui
s-tui 是一个美观且有用的 curses 样式界面,显示 CPU 频率、利用率、温度、功耗的图形,并内置压力测试器。
sysbench
sysbench 是一个全面的多线程基准测试工具。它用 C 和 Perl 编写,可以直接在 CLI 中使用,以对文件系统、DRAM、CPU、基于线程的调度程序和 POSIX 互斥锁性能进行基准测试。或者,它可以用作 Lua 脚本解释器,以对任何任意复杂的工作负载进行基准测试。它提供了一系列用于数据库基准测试的脚本。
闪存介质
可以使用 iozoneAUR 定量测量性能特征。持续读取和写入值可能(但通常不)与 I/O 密集型操作的实际用例相关,例如在系统更新时解压缩和写入大量文件。在这些情况下要考虑的相关指标是小文件的随机写入速度。
示例调用测试一个 10M 文件,使用 4k 记录大小
$ iozone -e -I -a -s 10M -r 4k -i 0 -i 1 -i 2
... random random kB reclen write rewrite read reread read write 10240 4 661 649 5802 5822 3892 624
图形
Basemark GPU
Basemark GPU 是一款评估工具,用于分析和测量跨移动和桌面平台的图形 API(OpenGL 4.5、OpenGL ES 3.1、Vulkan 和 Microsoft DirectX 12)性能。Basemark GPU 通过提供高质量和中等质量模式,同时面向桌面和移动平台。高质量模式解决前沿桌面工作负载,而中等质量模式解决等效的移动工作负载。
如果您使用的是 AMD GPU 并且同时安装了多个 Vulkan 实现,则在“测试”页面中,您将看到它们在“图形设备”下拉列表中显示为单独的 GPU。
Basemark GPU 在 basemarkAUR 软件包中可用。
Blender-benchmark
Blender-benchmark 将收集有关系统的信息,例如操作系统、RAM、显卡、CPU 型号,以及系统在基准测试执行期间的性能信息。之后,用户将能够在线在 Blender Open Data 平台上共享结果,或将数据保存在本地。
Blender-benchmark 在 blender-benchmarkAUR 软件包中可用。
GFXBench
GFXBench 是一款高端图形基准测试工具,可跨所有平台使用下一代图形功能来衡量移动和桌面性能。作为真正的跨 API 基准测试,GFXBench 支持所有行业标准和供应商特定的 API,包括 OpenGL、OpenGL ES、Vulkan、Metal、DirectX/Direct3D 和 DX12。
Vulkan API 测试目前正在开发中,仅适用于其企业合作伙伴。
GFXBench 在 gfxbenchAUR 软件包中可用。
glmark2
glmark2 是一个 OpenGL 2.0 和 ES 2.0 基准测试。
glmark2 在 glmark2 软件包中可用。
glxgears
glxgears 是一项流行的 OpenGL 测试,可渲染非常简单的 OpenGL 性能并输出帧速率。虽然 glxgears 可以用作图形驱动程序的直接渲染功能的测试,但它是一个过时的工具,不能代表 GNU/Linux 图形和整体 OpenGL 可能性的当前状态。glxgears 仅测试游戏中可能使用的一小部分 OpenGL 功能。在 glxgears 中注意到的性能提升不一定会在任何给定游戏中实现。有关更多信息,请参阅 此处。
glxgears 可以通过 mesa-utils 和 lib32-mesa-utils (对于 multilib)软件包安装。
GpuTest
GpuTest 是一个跨平台(Windows、Linux 和 Max OS X)GPU 压力测试和 OpenGL 基准测试。GpuTest 带有多个 GPU 测试,包括 Windows 世界中的一些流行测试(FurMark 或 TessMark)。
GpuTest 在 gputestAUR 软件包中可用。
intel-gpu-tools
intel-gpu-tools 为您提供集成 GPU 的一些类似 top 的信息。这在诊断 GPU 加速问题时非常有用。
要使用它,安装 intel-gpu-tools 软件包。
MangoHud
请参阅 MangoHud。
Unigine Engine
Unigine corp. 基于其图形引擎制作了多个现代 OpenGL 基准测试,具有以下功能:
- 逐像素动态照明
- 法线和视差遮挡贴图
- 64 位 HDR 渲染
- 体积雾和光照
- 强大的粒子系统:火焰、烟雾、爆炸
- 可扩展的着色器集 (GLSL / HLSL)
- 后期处理:景深、折射、发光、模糊、色彩校正等等。
Unigine 基准测试最近已被那些希望对其系统进行超频的人使用。Heaven 尤其已被用于超频的初始稳定性测试。
这些基准测试可以在 AUR 中找到
- unigine-sanctuaryAUR (2007)
- unigine-tropicsAUR (2008)
- unigine-heavenAUR (2009)
- unigine-valleyAUR (2013)
- unigine-superpositionAUR (2017)
vkmark
vkmark 是一个可扩展的 Vulkan 基准测试套件,具有有针对性的、可配置的场景。
vkmark 在 vkmark 软件包中可用。