内存性能测试工具使用
内存性能测试工具使用
bw_mem介绍
bw_mem是lmbench套件中的一个子测试工具,用于测试内存带宽,可以对内存RAM进行指定容量读写测试
参数说明:
-P :指定并行度(默认为1),即同时进行读写操作的线程数。
-W :指定预热时间(默认为2秒),即测试前先进行一段时间的数据填充以缓存命中率达到稳定状态,避免影响测试结果。
-N :指定重复次数(默认为10次),即每个块大小和并行度组合下测试多少轮。
size:每个块的大小,单位为字节。
what:表示要测试的类型,包括:
rd: 顺序读取
wr: 顺序写入
rdwr: 读写交替进行
cp: 单线程复制操作
fwr: 随机写入
frd: 随机读取
fcp: 随机复制操作
bzero: 填充0操作
bcopy: 内存拷贝操作
例如,如果想要测试10M块大小、随机读取、并行度为4、预热时间为3秒、重复10次的情况,则运行以下命令:
bw_mem -P 4 -W 3 -N 10 16M frd
测试内容:
测试cpu0~cpu7每个cpu从内存的读写带宽
测试方法:
用cpu0举例,其他cpu核方法一致,测试cpu0对内存的读写速度
拔掉其他7个cpu核,只保留cpu0在线
echo > 0 /sys/devices/system/cpu/cpu(n)/online,n取值1~7,分别执行拔核动作,需要执行七次该命令
cat /sys/devices/system/cpu/cpu(n)/online 分别读取各个cpu online节点的值,如果是0表示拔核成功
cat sys/devices/system/cpu/online 查看哪个cpu在线
测试举例:
把bw_mem push 到系统data目录,修改bw_mem的执行权限
chmod 777 bw_mem
lat_mem_rd
lat_mem_rd介绍
lat_mem_rd用于内存读取的延迟测试
运行以下命令来测试内存读取延迟:
./lat_mem_rd -P 1 -t -N 10 1M 16
参数说明:
-P 1
:使用一个进程 进行测试。` -t:随机访问模式,若无此选项为顺序访问。
-N 10
:进行 10 次测试并输出平均值。1M:访问的最大数据块,单位M
16:访问的步长大小,单位Byte(如果不写默认是64)
测试结果
stride=16
0.00049 1.584
0.00098 1.583
0.00195 1.593
0.00293 1.593
0.00391 1.597
0.00586 1.598
0.00781 1.600
0.01172 1.600
0.01562 1.602
0.02344 1.602
0.03125 1.628
0.04688 2.230
0.06250 2.207
0.09375 2.205
0.12500 2.204
0.18750 2.237
0.25000 2.278
0.37500 2.326
0.50000 2.351
0.75000 2.345
1.00000 2.349
执行结果的左侧为数据块大小,单位为兆M;右侧为在该数据块大小时测得的延时,延时单位是纳秒ns
测试内容:
我们需要分别测试cpu0~cpu7每个cpu从内存的读数据延时,数据块1M,测试步长分别为16,64,128
把lat_mem_rd push 到系统data目录,修改bw_mem的执行权限
chmod 777 lat_mem_rd