适用于Linux的CPU基准测试实用程序


66

我正在寻找一个实用程序,该实用程序将对单线程和多线程实例下的CPU性能进行基准测试。目前,我有一个旧的装备,其主频为3.6 GHz的双核CPU(E7500),并且我正在寻找以3.2 GHz的四核CPU(Q9400)替换它的方法。我想看看我是否会注意到额外的2个内核(尽管内核速度下降了)的性能提高。我将使用相同的FSB(400Mhz)来为CPU计时,每个CPU的缓存大小相同(1.5MB),对于它的价值,我拥有4GB的ram(有可能升级到6GB)

我儿子主要是使用PC来播放TF2(我正在尝试在Linux下继续工作),并且还使用它进行一些视频编码(从MP4到DVD)

我认为使用四核可能会更好,但是任何反馈将不胜感激。


2
有一个Geekbench可以比较CPU(e7500q9400已经存在测试结果,尽管许多设置完全不同,总线速度也有所不同。)
Wilf 2015年

Answers:


87

实际上,有一个名为的工具sysbench

您可以使用安装 sudo apt-get install sysbench

要进行CPU基准测试,您可以像

sysbench --test=cpu --cpu-max-prime=20000 run

其中20000就像最大事件计数。


7
--cpu-max-prime=20000是可选的,默认为10000。我建议--max-requests改用默认值和小提琴代替(这是执行的操作数)
MestreLion

11
另请注意,默认情况下,这是单线程测试。要测试N个核心,您可以使用--num-threads=N,并使用每个请求的统计信息输出来比较结果。
MestreLion

1
是否可以比较输出以获得相对性能?
jjxtra

31

或者,可以使用stress-ng。它具有CPU压力测试,是该工具内置的许多压力测试之一。cpu压力测试包含许多不同的CPU压力方法,包括整数,浮点数,位运算,混合计算,素数计算以及各种计算。

使用以下方法安装:

sudo apt-get install stress-ng

要查看与cpu相关的压力方法,请使用:

stress-ng --cpu-method which

例如,要在4个CPU线程上对矩阵乘积进行60秒的基准测试,请使用:

stress-ng --cpu 4 --cpu-method matrixprod  --metrics-brief --perf -t 60
stress-ng: info:  [15876] dispatching hogs: 4 cpu
stress-ng: info:  [15876] successful run completed in 60.00s (1 min, 0.00 secs)
stress-ng: info:  [15876] stressor      bogo ops real time  usr time  sys time   bogo ops/s   bogo ops/s
stress-ng: info:  [15876]                          (secs)    (secs)    (secs)   (real time) (usr+sys time)
stress-ng: info:  [15876] cpu              71657     60.00    239.60      0.00      1194.25       299.07
stress-ng: info:  [15876] cpu:
stress-ng: info:  [15876]            885,244,279,148 CPU Cycles                    14.75 B/sec
stress-ng: info:  [15876]          1,289,303,858,968 Instructions                  21.49 B/sec (1.456 instr. per cycle)
stress-ng: info:  [15876]            201,499,961,692 Cache References               3.36 B/sec
stress-ng: info:  [15876]                    790,424 Cache Misses                  13.17 K/sec ( 0.00%)
stress-ng: info:  [15876]            157,689,508,544 Branch Instructions            2.63 B/sec
stress-ng: info:  [15876]              1,232,539,732 Branch Misses                 20.54 M/sec ( 0.78%)
stress-ng: info:  [15876]              5,755,605,036 Bus Cycles                    95.92 M/sec
stress-ng: info:  [15876]            817,296,440,876 Total Cycles                  13.62 B/sec
stress-ng: info:  [15876]                      8,532 Page Faults Minor            142.19 sec  
stress-ng: info:  [15876]                          0 Page Faults Major              0.00 sec  
stress-ng: info:  [15876]                        220 Context Switches               3.67 sec  
stress-ng: info:  [15876]                          0 CPU Migrations                 0.00 sec  
stress-ng: info:  [15876]                          0 Alignment Faults               0.00 sec  

3
“无法找到包装压力-ng!”
Ehsan M. Kermani'2

1
如果您使用的是较早的发行版,则归档中将不再提供Stress-ng。但是,它们封装在PPA:科林·王/白
科林·伊恩国王

@ EhsanM.Kermani:仅从Ubuntu 15.14起(以及使用backports存储库到14.04 )在存储库中可用。见packages.ubuntu.com/...
MestreLion

1
从Stress-ng联机帮助页中:“ Stress-ng还可以测量测试吞吐率;这对于观察不同操作系统版本或硬件类型之间的性能变化很有用。但是,它从来没有打算用作精确的基准测试套件,因此请勿以这种方式使用它。”
Michael Franzl

2
作为Stress-ng的作者,我最好对此进行详细说明。Stress-ng足够好,可以从中获得一些比较基准测试结果,但是还没有经过充分的校准来说明每个特定压力源有多少偏差。因此,我建议多次运行一个stress-ng压力源,并查看特定压力测试中有多少变化,如果变化不大,则可以认为该强度足以作为该特定用例的基准。这一切都取决于现在嘈杂/忙体系,如何I / O执行,如果掉期等
科林·伊恩国王

10

phoronix测试套件

sudo apt-get install phoronix-test-suite
phoronix-test-suite list-available-suites
# Chose one, and run it.
phoronix-test-suite run pts/cpu    

对几种现实世界中占用大量CPU的用例进行基准测试,例如压缩,加密和数据库。

请注意,pts/cpu其他基准测试会占用几GB的磁盘空间。这可能意味着他们的工作量更加现实。

在Ubuntu 16.10上测试。



2
谢谢。我淹没在测试选项中,在第一轮使用phoronix时使用了build-suite。
andersoyvind

1
它不在debian 9中,但您仍然可以从phoronix-test-suite.com/?k=downloads下载.deb 并运行sudo apt install ./phoronix-test-suite(...).deb
hanshenrik

1
描述PTS时应提及的一件事是其基准的大小。运行上述pts/cpu基准测试将下载大约3GB的数据,并使用大约7GB的磁盘空间(在用户的主目录中)。
stefanct

同意,如果您正在寻找一个简单的基准测试,那么您就不需要phoronix-test-suite,它非常庞大,并且一直要求下载越来越多的依赖项来运行测试。(虽然您确实想要这个,但我敢肯定它是非常彻底的)
Jamie Pate
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.