lmbench基本的部署与使用

一、lmbench的编译与安装

1.1 获取lmbench源码

    开源工具lmbench可以进行对系统进行多项性能测试,如任务切换、IO、内存等等。可以从http://www.bitmover.com/lmbench/get_lmbench.html下载工具包源码lmbench3.tar.bz2,下载后解压为lmbench3/目录,测试工具源码及框架都在这里。

1.2 编译、安装与测试

1.2.1 编译

    在编译前我们需要修改lmbench/src/Makefile文件,不然会编译失败。修改如下:

    将

$O/lmbench : ../scripts/lmbench bk.ver
    改为
$O/lmbench : ../scripts/lmbenc
1)本地编译
    进入到lmbench3/目录,执行:
make OS=$OS  build
    即可。
    编译完成后生成的文件都放在 lmbench3/bin/$OS 这个目录下,$OS的值我们可以自己指定。
    默认情况下“$OS”的值与编译lmbench时的环境有关:OS="${MACHINE}-${SYSTEM}"。其中MACHINE则是编译lmbench工具时的机器名称,即用“uname -m”取得;SYSTEM表示我们的操作系统,可以通过“uname -s”拼接而成。

2)交叉编译
    以arm单板为例进行说明。执行如下编译命令:

make OS=$OS CC=xxxx/arm-linux-gnueabi-gcc AR=xxxx/arm-linux-gnueabi-ar build
    这里的OS含义与设置方法与1)相同,编译后生成的文件也都在lmbench3/bin/$OS 目录下。

1.2.2 改造与安装

1)改造
    编译完成后会在 lmbench3/bin/$OS目录下生成一个lmbench文件,这个文件包含了所有的测试条目。在某些情况下,我们只想只想测试、关注特定的项目,这时可以通过修改此文件,去掉我们不需要测试的项目即可。
2)安装
    编译完成后,我们只需要将lmbench3/ 整个目录放到我们的测试环境机器上即可。即本地编译直接就可以测试,交叉编译需要拷贝到待测开发环境。

1.2.3配置

    在进行测试前需要进行配置,以配置测试参数以及获取测试环境的信息(如测试size、cpu频率等等),配置脚本在 lmbench3/scripts 目录下,名字叫config-run。
# cd lmbench3/scripts
/* config-run会进行一些配置,这个需要我们根据自己的需求和单板实际情况进行配置 */
# env OS="$OS" ./config-run    		    /* "OS"为编译lmbench3后在bin目录下生成的目录*/ 
# export PATH=$PATH:/lmbench3/bin/$OS	/* 需要指定可执行文件的搜索路径 */

1.2.4测试与结果

    脚本lmbench/results会启动我们的测试:
# env OS="$OS"  BENCHMARK_OS=YES ./results		/* BENCHMARK_OS 可选 */
    测试完毕后其结果在lmbench3/results/$OS 目录下。

二、测试结果

2.1 环境配置结果

    在上面的1.2.4步骤测试完毕后,会在lmbench3/results/$OS目录下生成测试结果,测试结果文件的名字与我们操作系统的名字有关。而所有的环境配置会在结果文件中开头打印出来,部分信息类似如下:
[LMBENCH_VER: ]
[BENCHMARK_HARDWARE: NO]
[BENCHMARK_OS: YES]
[ALL: 512 1k 2k 4k 8k 16k 32k 64k 128k 256k 512k 1m 2m 4m 8m]
[DISKS: ]
[DISK_DESC: ]
[ENOUGH: 5000]
[FAST: ]
[FASTMEM: NO]
[FILE: /usr/tmp/XXX]
[FSDIR: /usr/tmp]

2.2 lmbench测试过程与原理

2.2.1 lmbench的测试参数

    在我们调用lmbench3/scripts/results脚本进行测试时,实际调用的是lmbench3/bin/lmbench脚本进行测试,测试中会依次执行其中的多个测试项目。
    这里用任务切换测试用例lat_ctx测试的脚本举例说明:
	for size in $CTX
	do	
		lat_ctx -P $SYNC_MAX -s $size $N
	done
    上面几个参数的取值(这些值和我们1.2.3配置有关)和含义:
        CTX= {0 4 8 16 32 64},表示一些时间消耗操作(进行内存操作时内存的大小);
        N = {2 4 8 16 24 32 64 96},表示进程数,整个测试会进行2、4、8…64、96个任务时的切换性能。
    其中SYNC_MAX这个参数在1.2.3步骤执行env OS="$OS" ./config-run 时由我们自己指定。

2.2.2 lmbench测试结果分析

    不同的测试用例有不同的测试结果输出格式。一般是一个二维的输出结构:
	条件A	条件B	条件C
条件a	结果Aa	结果Ba	结果Ca	
条件b	结果Ab	结果Bb	结果Cb
条件c	结果Ac	结果Bc	结果Cc
    对于性能的测试,结果一般是以微秒为单位的时间值。根据我们输入值的不同,可能会有多组输出结果。




  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值