适用于M1芯片上Ubuntu 22.04虚拟机的内存延迟检测工具咨询
嘿,我懂你现在的困扰——M1是ARM架构,Intel那款内存延迟检测工具依赖的msr-tools根本不支持它,毕竟那是专门给x86架构做的。别担心,给你推荐几个适配ARM环境的内存延迟检测工具,在你的Ubuntu 22.04虚拟机里应该能正常跑起来:
lmbench:这是个老牌的系统基准测试套件,涵盖了内存延迟、带宽等多种测试项。在Ubuntu里安装超简单,直接敲
sudo apt install lmbench就行。要测内存延迟的话,用lat_mem_rd命令,比如lat_mem_rd 1M 4M——第一个参数是测试用的内存块大小,第二个是工作集大小,跑完就能看到直观的延迟数值。perf:这是Linux自带的性能分析工具,ARM架构也完美支持。如果你的系统里没装,用
sudo apt install linux-tools-common linux-tools-generic就能搞定。它可以通过事件采样来分析内存访问延迟,比如先通过perf mem record -e latency ./your-test-program记录内存访问的延迟数据,再用perf mem report查看详细的分析报告。要是想快速测个大致延迟,也可以写个简单的循环访问内存的C程序,再用perf来分析它的运行情况。sysbench:这也是一款常用的基准测试工具,支持ARM架构。安装命令是
sudo apt install sysbench,之后可以用内存测试模式,比如sysbench memory run --memory-block-size=4k --memory-total-size=1G。虽然它主要测内存带宽,但输出里也会包含一些和延迟相关的统计数据,你也可以调整参数来更侧重延迟测试。
另外要提醒你一句:因为是在虚拟机里运行,测试结果会受到虚拟化层的影响,和物理机上的真实延迟会有一定差异,这点心里有数就好~
备注:内容来源于stack exchange,提问作者Jiaqi Ma

