aim7
是一个功能强大的性能测试套件,可以用来测试内核的性能变化情况,尤其是在修改内核源码后,用来测试补丁对内核性能的影响情况。aim7
测试结果中有一个重要的统计项:jobs/min
,即每分钟完成的任务数量,可以用这个数值的变化情况来评估补丁对内核性能的影响情况。下面记录一下 aim7
的使用步骤。
- 下载
aim7
源码包,下载地址 - 编译
aim7
,直接make
即可 - 修改
config
文件,添加测试目录,例如:
$ cat config
#Disk directories to exercise:
/root/zhoumin/test
- 在
workfile
文件中配置任务信息,包括FILESIZE
,POOLSIZE
,以及各种测试用例和对应的权重,这里只配置了一个测试用例disk_cp
,即重复执行文件拷贝任务,并且对应的权重是10
,如下所示:
$ cat workfile
FILESIZE: 1M
POOLSIZE: 10M
10 disk_cp
- 编写测试脚本,也可以手动执行
multitask
命令来启动测试,并手动设定对应的测试参数,例如:
$ cat run.sh
#!/bin/bash
(
echo lkp-disk-cp
echo disk_cp
echo 1
echo 1500
echo 2
echo 1500
echo 1
) | ./multitask -t &
下面分别在物理机和虚拟机中运行上述脚本,结果如下所示:
物理机:
$ ./run.sh
...
Tasks jobs/min jti jobs/min/task real cpu
1500 189035.92 74 126.0239 47.61 589.58 Mon Mar 6 20:13:19 2023
...
虚拟机:
$ ./run.sh
...
Tasks jobs/min jti jobs/min/task real cpu
1500 123898.68 85 82.5991 72.64 349.15 Mon Mar 6 20:15:52 2023
...
可以看到,针对相同的测试参数,物理机和虚拟机的 jobs/min
结果差距较大,这反映了不同的性能水平。