Linux CPU 性能测试
sysbench
Sysbench is mainly intended for doing database benchmarking. However it includes options to test CPU, memory and file throughput as well.
安装
sudo apt install sysbench
使用
ubuntu@instance:~$ sysbench cpu --threads=3 run
sysbench 1.0.18 (using system LuaJIT 2.1.0-beta3)
Running the test with following options:
Number of threads: 3
Initializing random number generator from current time
Prime numbers limit: 10000
Initializing worker threads...
Threads started!
CPU speed:
events per second: 10519.03
General statistics:
total time: 10.0003s
total number of events: 105208
Latency (ms):
min: 0.28
avg: 0.28
max: 5.22
95th percentile: 0.29
sum: 29976.02
Threads fairness:
events (avg/stddev): 35069.3333/81.99
execution time (avg/stddev): 9.9920/0.00
events per second,值越大,性能越强。
上面是一个Oracle主机的测试结果,3个OCPU,每秒事件10519。单个OCPU每秒事件数为3484。i7-7700 CPU,单核每秒事件数1438,8核每秒事件数8469。可见Oracle主机的OCPU性能很强,单核性能是 i7-7700 的2.4倍。
7z
7z是个压缩/解压工具,压缩/解压天然吃CPU,用来测试性能顺理成章。而且官方还给出了一些CPU型号的测试结果排名:7-Zip LZMA Benchmark (7-cpu.com)
安装
sudo apt install p7zip-full
使用
语法:
7z b [number_of_iterations] [-mmt{N}] [-md{N}] [-mm={Method}]
- number_of_iterations 迭代次数,测试多少轮,可用于检查内存错误
- mmt 线程数
举例:
# 单线程
$ 7z b -mmt1
# 多线程
$ 7z b
结果说明:
ubuntu@instance:~$ 7z b
7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=C.UTF-8,Utf16=on,HugeFiles=on,64 bits,3 CPUs LE)
LE
CPU Freq: - - - - - - 512000000 - -
RAM size: 17954 MB, # CPU hardware threads: 3
RAM usage: 441 MB, # Benchmark threads: 3
Compressing | Decompressing
Dict Speed Usage R/U Rating | Speed Usage R/U Rating
KiB/s % MIPS MIPS | KiB/s % MIPS MIPS
22: 8642 175 4813 8407 | 98748 199 4227 8431
23: 8612 187 4695 8775 | 97477 200 4228 8438
24: 8438 196 4622 9073 | 95682 200 4201 8400
25: 8151 198 4694 9307 | 93742 200 4176 8344
---------------------------------- | ------------------------------
Avr: 189 4706 8891 | 200 4208 8403
Tot: 194 4457 8647
上面是Orace OCPU的测试结果,单核4706。i7-7700单核3768。
- Dict:字典大小,22表示2^21=4MB
- Usage:cpu总利用率。我有3个核,这里最多只用到200%,这是因为7z似乎只能使用
2N
个核(来源“When you specify (N*2) threads for test, the program creates N copies of LZMA encoder, and each LZMA encoder instance compresses separated block of test data.”——7-Zip LZMA Benchmark (7-cpu.com)) - MIPS:million instructions per second
- R/U MIPS:单核性能。
- Rating MIPS:约等于
Usage * (R/U MIPS)
更多介绍,查看帮助文档。man 7z
,在最下面会看到:
HTML Documentation
/usr/share/doc/p7zip-full/DOC/MANUAL/start.htm
用vim或者浏览器打开此页面进入帮助文档主页。或直接打开以下页面查看benchmark相关内容:
chrome /usr/share/doc/p7zip/DOC/MANUAL/cmdline/commands/bench.htm
数值运算
比如写个python脚本:
import math
import time
t0 = time.time()
for i in range(0, 10000000):
math.pow(47,39)
print(time.time() - t0)
将该脚本在不同的CPU上执行,通过对比运行时间,估计待测CPU的性能。
本文同步发布于:
- https://whuwangyong.github.io/2022-04-27-linux-cpu-benchmark/
- https://whuwangyong.netlify.app/2022-04-27-linux-cpu-benchmark/
- https://whuwangyong.vercel.app/2022-04-27-linux-cpu-benchmark/