结论与定位
BogoMIPS只是内核在启动阶段用一段极简循环做“滴答校准”得到的粗略数值,用于内核的短延时函数(如udelay)标定,并非通用性能指标。它常被用来做非常粗略的对比,数值高通常意味着处理器主频更高或循环更快,但并不能反映真实应用性能,也不适合作为采购或调优依据。
它是怎么计算出来的
- 内核通过calibrate_delay()测量CPU在1 个 jiffy内可执行的空循环次数,得到loops_per_jiffy。
- 典型公式为:BogoMIPS = loops_per_jiffy × HZ ÷ 500000(其中HZ是内核每秒的时钟滴答数)。
- 因此它与“每秒能执行多少条‘伪指令’”相关,而不是真实工作负载的吞吐或延迟。名称中的“Bogo”即“伪”的意思。
为什么它不靠谱
- 只反映“空循环速度”,不代表指令级并行度、缓存/内存层次、分支预测、SIMD等决定真实性能的因素。
- 对同一处理器,仅因内核版本或代码对齐等变化,BogoMIPS可能明显波动,但应用性能未必改变;实测中就有平台更换内核后BogoMIPS从约997.78降到663.55,而业务并无性能差异的案例。
- 不同架构/编译器/指令集优化路径差异很大,BogoMIPS不可跨平台横向比较。
应该看什么指标
- 运行时频率与调度:查看**/sys/bus/cpu/devices/cpu0/cpufreq下的cpuinfo_cur_freq、cpuinfo_max_freq、scaling_governor等,了解当前频率与调频策略(如performance、ondemand**)。
- 基础规格:在**/proc/cpuinfo关注model name、cpu MHz、cache size、flags**等,了解型号、频率、缓存与指令集能力。
- 真实负载测评:用贴近业务的基准(如sysbench、SPEC CPU、lmbench、fio等)或实际工作负载做压测,观察吞吐、延迟与抖动。
快速自检命令
- 查看BogoMIPS:cat /proc/cpuinfo | grep -i bogomips
- 查看当前/最大/最小频率与策略:cat /sys/bus/cpu/devices/cpu0/cpufreq/{cpuinfo_cur_freq,cpuinfo_max_freq,cpuinfo_min_freq,scaling_governor}
- 查看各频点停留时间分布:cat /sys/bus/cpu/devices/cpu0/cpufreq/stats/time_in_state
- 查看CPU基础规格:cat /proc/cpuinfo | egrep “model name|cpu MHz|cache size|flags”
以上有助于判断频率、调度与实际规格,远比单看BogoMIPS更有参考价值。