关注优麒麟,更多干货等着你!
一个好的操作系统不仅仅依赖于系统基本功能趋于稳定,更取决于系统性能的好坏。系统性能测试是一个不断对系统施加压力的过程,在此过程中,不断发现系统性能指标和最大负载能力。性能测试工具很多,例如 Jmeter、loadrunner、stream、lmbench 等。本文将主要介绍性能测试工具 lmbench 在优麒麟系统上的使用。
lmbench 是一款评价系统综合性能的开源工具,它不仅简易、可移植性强,而且支持多种操作系统,例如 Unix、Linux 等。它提供了一个测试框架,当测试者对系统拥有更高的测试需求时,测试者能够通过修改对应部分的代码最终实现自己的测试目的。相比其他性能测试软件,lmbench 对于测试者来说更为方便。lmbench 主要对文件读写、进程创建销毁开销、网络建立、内存操作等性能进行测试。它主要衡量系统的两个关键特征,分别为反应时间和带宽。lmbench 在优麒麟系统上的下载、安装及使用方法如下所示。
1.首先在网上下载 lmbench 的 tar 安装包,其下载的官方网址为https://sourceforge.net/projects/lmbench/,大家可以根据自己的测试需求选择对应的下载版本,本文以下内容均以 x86 架构的 lmbench 3.0-a9 版本进行展开。下载安装包的相关内容如图1所示。
图1:lmbench 下载网页
2.将下载的 lmbench 安装包解压到相应路径下,本文将其 tar 包解压至 Linux 系统中常用安装大型软件的安装目录下(/opt)。lmbench 安装包解压命令及解压情况如下所示。
将目录切换至 root 目录下:
sudo su
lmbench 安装包解压至 /opt 下的命令:
tar xzvf lmbench-3.0-a9.tar.gz -C /opt
图2:解压 lmbench 的安装包
3.当系统的内存超过 16G 时,为了避免程序由于计算溢出而无法正常退出的现象产生,测试人员需要修改 lmbench 源代码中对应程序。即修改 /opt/lmbench-3.0-a9/src/ 目录下 lib_mem.c 文件中的 line_initialize 函数,将 int i, j, nlines, npages(第367行)更改为 long i, j, nlines, npages,即 int 型变量变为 long 型变量,扩大变量的取值范围。具体命令及修改位置如下所示:
切换目录命令:
cd /opt/lmbench-3.0-a9/src/
修改命令:
vim lib_mem.c
图3:源代码修改位置
4.使用 make results 命令进行编译测试,在编译测试过程中,会对配置参数进行配置(例如 MULTIPLE COPIES,JOB placement selection,MB 等),从而生成相应的配置脚本。因此,后续的大量测试将直接根据配置脚本使用相同的配置参数进行测试。
SUBSET 参数设置的不同,lmbench 测试的测试项不同,但不会影响测试结果的大小。
SUBSET 共有 4 个可选参数,分别为 ALL,HARWARE,OS,DEVELOPMENT。
-
ALL 表示所有测试项均被测试;
-
HARWARE 表示只对数学运算,内存延时以及部分本地通讯带宽进行测试;
-
OS 表示对处理器 processor 性能,上下文切换,本地通讯延时,文件延时以及本地通讯带宽进行测试;
-
DEVELOPMENT 可选择对SYSCALL,SELECT,SIGNAL 以及 PROCESS 等进行测试。
lmbench 编译命令及编译部分结果如下所示。
编译命令:
make results
图4:make results编译结果展示
5.测试完成后,可以在 /opt/lmbench-3.0-a9/ 目录下使用 make see 命令生成 lmbench 测试结果报告,即 /results/summary.out 文件。
测试报告生成命令:
make see
6.测试结果分析:
lmbench 的性能测试结果主要包括 8 大部分,分别为:系统基本参数(Basic system parameters)、处理器 processor 性能(Process)、数学运算(Basic integer operations、Basic uint64 operations、Basic float operations、Basic double operations)、上下文切换(Context switching)、本地通讯延时(Local Communication latencies)、文件与内存延迟(File & VM system latencies)、本地通讯带宽(Local Communication bandwidths)和内存操作延迟(Memory latencies)。
在 lmbench 测试中,各部分的测试结果评估标准不同。其中本地通讯带宽比较特殊,当它的测试结果值越大时,表示它的性能越好。其他部分的测试结果反之,即测试结果值越小,代表性能越好。lmbench 的 3 次部分测试结果如图 5 所示。
图 5 lmbench 部分测试结果
以上就是关于优麒麟系统上性能测试工具 lmbench 的使用内容,如果有任何问题或需要,可随时至优麒麟论坛留言。