Hello,大家好啊!在今天的文章中,我们将探讨如何在统信UOS及麒麟KYLINOS操作系统上使用Sysbench工具来测试CPU性能。对于Linux用户来说,了解和评估自己系统的性能是非常重要的,特别是在进行系统配置或者软件开发时。幸运的是,Linux下有许多工具可以帮助我们完成这项任务,而Sysbench就是其中一种既简单又实用的工具。
Sysbench简介
Sysbench是一个多线程的基准测试工具,它可以对系统进行多方面的性能测试,包括CPU、内存、I/O操作以及数据库性能。由于其高度的可配置性和跨平台特性,Sysbench成为了评估不同系统性能的首选工具之一。
使用Sysbench测试CPU性能
安装完Sysbench后,我们可以通过执行一系列的测试来评估CPU性能。最常用的测试包括CPU性能测试、线程性能测试和锁定性能测试等。
解读测试结果
Sysbench测试完成后,将会显示测试结果。主要关注的几个指标包括总执行时间、每秒事务数等。根据这些指标,你可以对比不同配置或不同系统间的CPU性能差异。
1.查看系统信息
pdsys@pdsys-PC:~/Desktop$ cat /etc/os-version
[Version]
SystemName=UOS Desktop
SystemName[zh_CN]=统信桌面操作系统
ProductType=Desktop
ProductType[zh_CN]=桌面
EditionName=Professional
EditionName[zh_CN]=专业版
MajorVersion=20
MinorVersion=1060
OsBuild=11018.100.100
pdsys@pdsys-PC:~/Desktop$ uname -a
Linux pdsys-PC 4.19.0-amd64-desktop #6030 SMP Tue Jun 27 15:58:51 CST 2023 x86_64 GNU/Linux
pdsys@pdsys-PC:~/Desktop$
2.查看cpu信息
pdsys@pdsys-PC:~/Desktop$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
Address sizes: 45 bits physical, 48 bits virtual
CPU(s): 16
On-line CPU(s) list: 0-15
Thread(s) per core: 1
Core(s) per socket: 2
Socket(s): 8
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 183
Model name: Intel(R) Core(TM) i9-14900KF
Stepping: 1
CPU MHz: 3187.203
BogoMIPS: 6374.40
Hypervisor vendor: VMware
Virtualization type: full
L1d cache: 768 KiB
L1i cache: 512 KiB
L2 cache: 32 MiB
L3 cache: 288 MiB
NUMA node0 CPU(s): 0-15
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology tsc_reliable nonstop_tsc cpuid pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves arat umip pku ospke gfni vaes vpclmulqdq rdpid md_clear flush_l1d arch_capabilities
pdsys@pdsys-PC:~/Desktop$
3.更新仓库源
pdsys@pdsys-PC:~/Desktop$ sudo -i
root@pdsys-PC:~#
root@pdsys-PC:~# apt update
命中:3 https://pro-driver-packages.uniontech.com eagle InRelease
命中:1 https://cdn-professional-security.chinauos.com eagle/1060 InRelease
命中:2 https://professional-packages.chinauos.com/desktop-professional eagle InRelease
命中:4 https://professional-packages.chinauos.com/printer eagle InRelease
命中:5 https://app-store-files.uniontech.com/240315165903042/appstore eagle-pro InRelease
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
有 193 个软件包可以升级。请执行 ‘apt list --upgradable’ 来查看它们。
root@pdsys-PC:~#
4.安装依赖包和工具
pdsys@pdsys-PC:~/Desktop$ sudo -i
root@pdsys-PC:~#
root@pdsys-PC:~# apt install make autoconf automake libtool pkg-config gcc -y
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
autoconf 已经是最新版 (2.69-11)。
automake 已经是最新版 (1:1.16.1-4)。
automake 已设置为手动安装。
gcc 已经是最新版 (4:8.3.0-1)。
libtool 已经是最新版 (2.4.6.1-2+dde)。
libtool 已设置为手动安装。
make 已经是最新版 (4.2.1-1.2)。
pkg-config 已经是最新版 (0.29.1-1+dde)。
下列软件包是自动安装的并且现在不需要了:
libutempter0 squashfs-tools x11-apps x11-session-utils xbitmaps xinit
使用'apt autoremove'来卸载它(它们)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 193 个软件包未被升级。
root@pdsys-PC:~#
5.下载Sysbench源码包
https://github.com/akopytov/sysbench/releases
6.将源码包放到桌面
7.解压源码包
pdsys@pdsys-PC:~/Desktop$ tar zxvf sysbench-1.0.20.tar.gz
8.源码包内容
pdsys@pdsys-PC:~/Desktop$ cd sysbench-1.0.20/
pdsys@pdsys-PC:~/Desktop/sysbench-1.0.20$ ls -ltr
总用量 152
drwxr-xr-x 5 pdsys pdsys 4096 4月 24 2020 third_party
drwxr-xr-x 4 pdsys pdsys 4096 4月 24 2020 tests
drwxr-xr-x 5 pdsys pdsys 4096 4月 24 2020 src
drwxr-xr-x 2 pdsys pdsys 4096 4月 24 2020 snap
drwxr-xr-x 2 pdsys pdsys 4096 4月 24 2020 scripts
drwxr-xr-x 2 pdsys pdsys 4096 4月 24 2020 rpm
-rw-r--r-- 1 pdsys pdsys 478 4月 24 2020 README-WIN.txt
-rw-r--r-- 1 pdsys pdsys 2069 4月 24 2020 README-Oracle.md
-rw-r--r-- 1 pdsys pdsys 16086 4月 24 2020 README.md
-rwxr-xr-x 1 pdsys pdsys 1988 4月 24 2020 mkinstalldirs
-rwxr-xr-x 1 pdsys pdsys 10266 4月 24 2020 missing
-rw-r--r-- 1 pdsys pdsys 1583 4月 24 2020 Makefile.am
drwxr-xr-x 2 pdsys pdsys 4096 4月 24 2020 m4
-rwxr-xr-x 1 pdsys pdsys 7122 4月 24 2020 install-sh
drwxr-xr-x 3 pdsys pdsys 4096 4月 24 2020 doc
drwxr-xr-x 3 pdsys pdsys 4096 4月 24 2020 debian
-rw-r--r-- 1 pdsys pdsys 18092 4月 24 2020 COPYING
-rw-r--r-- 1 pdsys pdsys 14744 4月 24 2020 configure.ac
drwxr-xr-x 2 pdsys pdsys 4096 4月 24 2020 config
-rw-r--r-- 1 pdsys pdsys 16755 4月 24 2020 ChangeLog
-rwxr-xr-x 1 pdsys pdsys 3074 4月 24 2020 autogen.sh
pdsys@pdsys-PC:~/Desktop/sysbench-1.0.20$
9.检查系统环境
pdsys@pdsys-PC:~/Desktop/sysbench-1.0.20$ sudo -s
请输入密码:
验证成功
root@pdsys-PC:/home/pdsys/Desktop/sysbench-1.0.20#
root@pdsys-PC:/home/pdsys/Desktop/sysbench-1.0.20# ./autogen.sh
10.检查系统必要的依赖和工具
root@pdsys-PC:/home/pdsys/Desktop/sysbench-1.0.20# ./configure --without-mysql
11.自动化编译和链接过程
root@pdsys-PC:/home/pdsys/Desktop/sysbench-1.0.20# make
12.安装软件
root@pdsys-PC:/home/pdsys/Desktop/sysbench-1.0.20# make install
13.CPU性能测试
root@pdsys-PC:/home/pdsys/Desktop/sysbench-1.0.20# sysbench cpu --cpu-max-prime=20000 run
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)
Running the test with following options:
Number of threads: 1
Initializing random number generator from current time
Prime numbers limit: 20000
Initializing worker threads...
Threads started!
CPU speed:
events per second: 1483.60
General statistics:
total time: 10.0002s
total number of events: 14838
Latency (ms):
min: 0.53
avg: 0.67
max: 3.54
95th percentile: 0.90
sum: 9989.50
Threads fairness:
events (avg/stddev): 14838.0000/0.00
execution time (avg/stddev): 9.9895/0.00
root@pdsys-PC:/home/pdsys/Desktop/sysbench-1.0.20#
root@pdsys-PC:/home/pdsys/Desktop/sysbench-1.0.20# sysbench cpu --cpu-max-prime=20000 run
这个命令会启动一个CPU测试,其中--cpu-max-prime=20000定义了最大的素数。你可以根据需要调整这个值。
CPU速度:测试显示每秒可以处理大约1483.60个事件。
总体统计数据:
总时间:大约10秒。
总事件数量:14838个。
延迟(毫秒):
最小值:0.53毫秒。
平均值:0.67毫秒。
最大值:3.54毫秒。
95%的百分位数:0.90毫秒。
总和:9989.50毫秒。
线程公平性:
事件(平均值/标准差):14838.0000/0.00。
执行时间(平均值/标准差):9.9895/0.00。
这些结果提供了关于CPU在执行计算密集型任务时的性能的重要信息。事件每秒(EPS)指标反映了CPU处理能力的一个方面,即在一个给定时间内完成的工作量。在这种情况下,CPU能够在10秒内完成大约14838个任务,每个任务计算一个给定范围(此处为20000)内的所有素数。
延迟统计数据提供了关于任务完成所需时间的洞察,从而帮助评估系统响应性。平均延迟0.67毫秒说明CPU能够迅速响应计算需求。
这些结果可以用作基准,用于比较不同系统或配置下的性能,或者评估系统调优和硬件升级的效果。
14.线程性能测试
root@pdsys-PC:/home/pdsys/Desktop/sysbench-1.0.20# sysbench threads --threads=10 --thread-yields=100 --thread-locks=2 run
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)
Running the test with following options:
Number of threads: 10
Initializing random number generator from current time
Initializing worker threads...
Threads started!
General statistics:
total time: 10.0004s
total number of events: 270905
Latency (ms):
min: 0.01
avg: 0.37
max: 14.54
95th percentile: 1.12
sum: 99842.68
Threads fairness:
events (avg/stddev): 27090.5000/284.64
execution time (avg/stddev): 9.9843/0.00
root@pdsys-PC:/home/pdsys/Desktop/sysbench-1.0.20#
root@pdsys-PC:/home/pdsys/Desktop/sysbench-1.0.20# sysbench threads --threads=10 --thread-yields=100 --thread-locks=2 run
测试配置:使用了10个线程,每个线程在请求锁之前执行了100次yield操作,并且测试了2个锁。
总体统计数据:
总时间:大约10秒。
总事件数量:270905个。
延迟(毫秒)统计:
最小延迟:0.01毫秒。
平均延迟:0.37毫秒。
最大延迟:14.54毫秒。
95%的百分位数延迟:1.12毫秒。
总延迟和:99842.68毫秒。
线程公平性:
事件(平均/标准差):27090.5000/284.64。
执行时间(平均/标准差):9.9843/0.00。
结果解读:
这个测试展示了在并发场景下,线程如何在竞争资源(如锁)时表现。总事件数量和平均延迟是衡量系统并发处理能力的关键指标。
总事件数量:反映了在测试期间总共处理的事件数,这里是270905个,表明在给定的线程数和锁竞争条件下,系统能够在10秒内完成这么多的操作。
延迟:延迟的平均值、最小值、最大值和95%的百分位数给出了关于系统响应时间的信息。平均延迟0.37毫秒说明系统在处理请求时相对迅速,而最大延迟14.54毫秒可能表明存在一些较慢的操作或瞬时的资源竞争。
线程公平性:平均事件数和执行时间的标准差给出了线程之间工作分配的均匀程度。这里的标准差相对较小,表明所有线程在事件处理和执行时间上的分配相对公平。
整体来看,这个测试提供了系统在高并发条件下处理线程交互和锁竞争的性能快照。优秀的并发处理能力和低延迟对于需要高度并行处理能力的应用来说非常关键。