我正在寻找一个实用程序,用于在单线程和多线程实例下对 CPU 性能进行基准测试。目前,我有一台旧设备,配备 3.6 Ghz 的双核 CPU (E7500),我正在考虑将其替换为 3.2 Ghz 的四核 CPU (Q9400)。我想看看是否会注意到额外的 2 个内核的性能改进(尽管内核速度会下降)。我将使用相同的 FSB(400Mhz)对 CPU 进行时钟频率测试,每个 CPU 的缓存大小相同(1.5MB),并且我有 4GB 内存(有可能升级到 6GB)
我儿子主要用电脑玩 TF2(我仍在尝试让它在 Linux 下运行),我也用它进行一些视频编码(MP4 到 DVD)
我认为使用四核处理器会更好,但如果能提供任何反馈我将非常感激。
答案1
其实有一个名为sysbench
。
您可以使用以下方式安装:
sudo apt-get install sysbench
要进行 CPU 基准测试,您可以使用:
sysbench cpu run
这将运行单线程 CPU 基准测试。要使用多个线程,请使用:
sysbench --threads=16 cpu run
答案2
或者,也可以使用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
旧问题(尚未选定答案)
答案4
如果您没有 root 权限(例如托管 Web 服务器)
测量单芯:
-bash-4.2$ time cat </dev/urandom | head -c 1G | gzip >/dev/null
real 0m43.011s
user 0m42.608s
sys 0m8.819s
测量所有核心:
-bash-4.2$ time cat </dev/urandom | head -c 1G | pigz >/dev/null
real 0m13.870s
user 0m45.988s
sys 0m6.803s
如果你已经拥有pv
但不想安装特殊的基准测试软件,那就更简单了
a@a-virtual-machine:~$ pv </dev/urandom | gzip >/dev/null
149MiB 0:00:04 [37.5MiB/s]
a@a-virtual-machine:~$ pv </dev/urandom | pigz >/dev/null
348MiB 0:00:02 [ 173MiB/s]