跳转至

Aarch64 CPU Benchmarks for Performance Degrade

导言

测试人员之前有台高性能的测试机器,未知原因坏了之后,他们修好之后,发现性能损失。推测是鲲鹏920的性能损失,为此需要:

  1. 通过benchmark证明性能损失。
  2. 定位并说明性能损失原因:1. 软件硬件? 2. 硬件老化还是流片差异?
  3. 确定性能损失原因,并给出解决方案。

系统配置

  1. CPU:频率,缓存大小
  2. 内存: dmidecode -t memory|grep DDR4 -A 5 -B11
  3. OS:

Benchmark

  • 由于当前场景只需要证明同一产品的性能损失,并不比较不同产品间的性能绝对值。
  • 与其使用复杂、实际场景的benchmark,不同从简单指令入手。

  • C++代码插桩 G-benchmark

  • 数据库为主 sysbench
  • stress 命令 (对于 Debian/Ubuntu 系统)
  • 各种老牌应用 UnixBench

micro-Benchmark

All

  1. 上下文启动和系统调用开销 contextswitch
  2. 访存 lmbench

X86

  1. 微架构 nanobench
  2. 微架构 uarch-bench

小结

  • 两个系统如果没有特别注意,从g++编译器,OS的配置都不同。
  • 这会导致即使简单的add指令性能一样。
  • 随着程序更加复杂,编译器和OS的变量加入进来,性能差异也越来越大。
  • 编译器和Kernel版本比较难迭代测试,最终只会得到性能不同的结果,但是难以分析出具体是什么原因,只能说用最新的编译器和Kernel版本。

参考文献

评论