内存延迟测试,严格来说是指idle read latency。也就是空载情况下的内存读延时,繁忙的时候latency会相应加长。
延时的计量单位:
测试内存延时,用墙上时间(wall clock),一般是纳秒(ns)。这种情况下,内存的访问延时的墙上时间不随着CPU的主频变化而变化。
测试CPU的cache延时,用多少CPU cycle来表示。CPU主频快了,访问cache的也快了(墙上时间少了),但是不同主频访问cache换算出的cycle数量是恒定的。
测试软硬件
硬件FP5295G2 Power9 Monza处理器
系统:Ubuntu 18.04.4 LTS
编译lmbench
wget http://www.bitmover.com/lmbench/lmbench3.tar.gz
tar xf lmbench3.tar.gz
更改Makefile文件,更改后的文件是Makefile.bak。 更改内容,可以参考下面内容。
cd src
cp Makefile Makefile.bak
vim Makefile
--- Makefile 2005-08-22 19:19:54.000000000 -0500
+++ Makefile.bak 2017-12-17 23:40:03.470936848 -0600
@@ -111,8 +111,8 @@
$O/lib_sched.o
lmbench: $(UTILS)
- @env CFLAGS=-O MAKE="$(MAKE)" MAKEFLAGS="$(MAKEFLAGS)" CC="$(CC)"
OS="$(OS)" ../scripts/build all
- -@env CFLAGS=-O MAKE="$(MAKE)" MAKEFLAGS="-k $(MAKEFLAGS)" CC=