巧用 bc 命令测试 Linux 主机的 CPU 性能
今天向公司申请了一台 Linux 主机,作为平时的开发环境。由于自己并不依赖远程开发(大多数情况下项目都可以本地开发、调试),于是只申请了 4C/8G 的低配机器。
突然好奇的是,这台机器的性能怎么样?磁盘就不测试了,IO 应该和生产环境差不多。先看看 CPU 的信息:
cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 45
model name : Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00GHz
stepping : 7
microcode : 0x71a
cpu MHz : 1999.999
cache size : 20480 KB
physical id : 0
siblings : 1
core id : 0
cpu cores : 1
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx hypervisor lahf_lm ssbd ibrs ibpb stibp tsc_adjust arat md_clear spec_ctrl intel_stibp flush_l1d arch_capabilities
bogomips : 3999.99
clflush size : 64
cache_alignment : 64
address sizes : 45 bits physical, 48 bits virtual
power management:
E5-2650,2012 年 Q1 生产的,已经是很旧的机器了。
Linux 系统中,bc 命令是一个任意精度的计算器,如果用它计算圆周率,我们可以大概估算出 CPU 的浮点运算性能:
time echo "scale = 5000; 4 * a(1)" | bc -l -q
其中:
time
用来计算执行时间;scale = 5000
,表示精度为 5000,也就是计算圆周率小数点后的 5000 位;4 * a(1)
,这个用来计算圆周率,1 的反正切是 π / 4;-l
定义使用的标准数学库;-q
不打印正常的 GNU bc 环境信息。
执行结果如下:
real 0m23.992s
user 0m23.983s
sys 0m0.003s
找了台苹果笔记本 Air,i5 的 CPU,耗时 20s,说明我电脑的单核性能比 Linux 的机器还快了一点。
不过,这个方法只适合粗略估算,如果要求精确,需要安装专业的性能测试套件。
文章来源于本人博客,发布于 2019-06-16,原文链接:https://imlht.com/archives/188/