Linux教程

linux下LTP工具说明

本文主要是介绍linux下LTP工具说明,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

原文地址::https://blog.csdn.net/zhang_danf/article/details/43764457

订阅专栏

LTP工具说明

http://blog.csdn.net/kernel_learner/article/details/8238974

http://blog.csdn.net/melody157398/article/details/24354415

1.... LTP测试套件...................................................... 3

1.1        简介............................................................................................................... 3

1.2        源目录结构.................................................................................................... 3

2.... LTP安装............................................................ 4

2.1        下载............................................................................................................... 4

2.2        编译............................................................................................................... 4

2.3        安装说明........................................................................................................ 5

3.... LTP测试套件结构说明.......................................... 6

3.1        概述............................................................................................................... 6

3.2        目录介绍........................................................................................................ 6

3.3        LTP执行原理................................................................................................. 6

4.... LTP测试套件测试内容.......................................... 7

4.1        LTP测试套件测试内容................................................................................... 7

4.1.1         commands............................................................................................ 7

4.1.2         kernel.................................................................................................. 7

4.1.3         kdump................................................................................................. 8

4.1.4         network................................................................................................ 8

4.1.5         realtime................................................................................................ 8

4.1.6         open_posix_testsuite.............................................................................. 8

4.1.7         misc..................................................................................................... 8

4.2        测试方法说明................................................................................................. 8

4.2.1         commands模块内容描述及实现方法..................................................... 8

4.2.2         kernel................................................................................................ 10

4.2.3         network............................................................................................. 15

4.2.4         open_posix_testsuite............................................................................ 17

4.2.5         realtime............................................................................................. 18

5.... LTP测试套件配置详细........................................ 19

5.1        networktests.sh脚本配置............................................................................... 19

5.2        networkstress.sh配置..................................................................................... 23

5.3        open_posix_testsuite测试套件........................................................................ 28

5.4        realtime配置................................................................................................ 29

5.5        mm脚本的配置............................................................................................ 30

5.6        io脚本配置.................................................................................................. 30

5.7        filecaps的配置............................................................................................. 30

5.8        tpm_tools的配置.......................................................................................... 31

5.9        tcore的配置................................................................................................. 31

5.10      io_floppy的配置.......................................................................................... 31

5.11      io_cd 的配置............................................................................................... 32

5.12      cpuhotplug的配置........................................................................................ 32

5.13      adp.sh的配置............................................................................................... 33

5.14      autofs1.sh和autofs4.sh的配置....................................................................... 34

5.15      exportfs.sh的配置......................................................................................... 34

5.16      isofs.sh的配置.............................................................................................. 34

5.17      ltpdmmapper.sh的配置.................................................................................. 35

5.18      ltpfslvm.sh的配置及要求.............................................................................. 36

5.19      ltpfsnolvn.sh的配置及要求........................................................................... 36

5.20      ltp-scsi_debug.sh的配置及要求..................................................................... 37

5.21      sysfs.sh的配置及要求................................................................................... 37

5.22      rpctirpc的配置及要求................................................................................... 37

5.23      test_selinux.sh的配置及要求......................................................................... 39

5.24      smack的配置和要求..................................................................................... 40

5.25      perfcounters的配置及要求............................................................................ 41

5.26      can的配置及要求......................................................................................... 41

5.27      test_robind.sh的配置.................................................................................... 42

6.... LTP测试套件使用说明........................................ 43

6.1        概述............................................................................................................ 43

6.2        初始测试..................................................................................................... 44

6.2.1         runltp使用说明.................................................................................. 44

6.2.2         runalltests.sh脚本说明........................................................................ 46

1      LTP测试套件

1.1     简介

LTP(LinuxTest Project)是SGI、IBM、OSDL和Bull合作的项目,目的是为开源社区提供一个测试套件,用来验证Linux系统可靠性、健壮性和稳定性。LTP测试套件是测试Linux内核和内核相关特性的工具的集合。该工具的目的是通过把测试自动化引入到Linux内核测试,提高Linux的内核质量。LTP提供了验证linux系统稳定性的标准,设计标准的压力场景,通过对linux系统进行压力测试,对系统的功能、性能进行分析,并以此确定linux系统的可靠性、健壮性和稳定性。

1.2     源目录结构

   如表1,是对LTP源包目录结构的描述:

INSTALL

LTP安装配置指导文档

README

LTP介绍

CREDITS

记录对LTP有很大贡献的人

COPYING

GNU Public License

ChangeLog

描述版本变化

ltpmenu

规划执行LTP的图形化界面接口

Makefile

LTP顶层目录的Makefile,负责编译安装pan、testcases和tools

runalltests.sh

顺序运行全部测试例程并且报告结果的脚本

doc/*

工程文档包含工具和库函数使用手册,描述各种测试

include/*

通用的头文件目录

lib/*

通用的库函数目录

testcases/*

包含在LTP下运行和bin目录下的所有测试用例和链接

testscripts/*

存放分组的测试脚本

runtest/*

为自动测试提供命令列表

pan/*

测试的驱动装置。具备随即和并行测试的能力

scratch/*

存放零碎测试的东西

tools/*

存放自动化测试脚本和辅助工具

表1  LTP源代码结构

2      LTP安装

2.1     下载

    LTP是一项动态工程,LTP源包命名方式一般为:ltp-yyyymmdd。目前版本为ltp-20110228。以下均为ltp-20110228版本的配置,官网地址为:http:/ltp.sourceforge.net/。

2.2     编译

   从官方网站下载最新的LTP测试套件包,解压后进入ltp源目录。按照表2方法进行快速安装,在编译成功后会自动安装到/opt/ltp目录下。

[root@server20 ltp]#./configure

[root@server20 ltp]# make

[root@server20 ltp]# make install

IDcheck.sh

检查系统是否缺少执行LTP测试套件所需的用户和用户组,如果缺少则为LTP测试套件创建所需的用户和用户组。

runltplite.sh

这个脚本用来测试LTP安装,也可用来对测试套件的子项目进行测试。详情参阅脚本。

runltp

这个脚本能够测试LTP测试套件主要项目。其中包括:

- 硬盘 I/O 测试。

- 内存管理压力测试。

- IPC 压力测试。

- SCHED测试。

- 命令功能的验证测试。

- 系统调用功能的验证测试。

ver_linux

这个脚本是获取硬件、软件、环境信息。

runalltests.sh

测试内容同runltp,不同点在于runltp可以指定测试项进行组合测试,而runalltests.sh则会全部执行。

testscripts

列举了所有的子系统测试脚本,脚本说明见下文。

adp_children.sh

sysfs.sh

ltp-aiodio.sh

ltpstress.sh

runpan.sh

networkstress.sh

adp.sh

adp.sh

autofs1.sh

autofs4.sh

diskio.sh

exportfs.sh

fs_ro_tests

isofs.sh

load_stress_all_kernel_modules.sh

ltpdmmapper.sh

ltpfslvm.sh

ltpfslvm.sh

ltp-scsi_debug.sh

math.sh

networktests.sh

runEALtests.sh

runpan.sh

syscall.sh

tet_containers.sh

test_filecaps.sh

test_fs_bind.sh

test_realtime.sh

test_robind.sh

test_selinux.sh

runpan.sh

 

表2 编译

2.3     安装说明

在安装编译ltp之前,需要确定linux系统“make”版本,ltp编译需要“make”版本最低要求为“make 3.80”,优先使用“make 3.81”版本。为了编译和使用ltp-scanner,linux系统需要安装bison/yacc和flex包。详细安装方法可参照说安装说明文件INSTALL(源包目录)。

3      LTP测试套件结构说明

3.1     概述

   LTP编译成功后,包含三大部分:测试案例、测试脚本、测试驱动。测试案例目录为testcases/,testcases/包含了测试案例和案例脚本;测试脚本主要目录为testscripts/,里面包含了文件系统,磁盘,内核,内存等测试脚本;测试驱动目录为bin/,该目录存放了ltp各种驱动脚本,如ltp-pan,ltp-scanner等。

3.2     目录介绍

    表3 描述了ltp编译后各目录存储的内容和功能:

目录名

功能

bin

存放LTP测试的一些辅助脚本

results

测试结果默认存储目录

testcases

测试项集

output

测试日志默认存储目录

share

脚本使用说明目录

runtest

测试驱动(用于链接testscripts内的测试脚本和testcases测试项目)

lib

通用的库函数目录

表3 目录描述

3.3     LTP执行原理

从一个测试命令文件(或脚本)中读取所测条目需要执行的命令行,然后等待该项测试的结束,并记录详细的测试输出。默认状态下pan会随机的选择一个命令行来运行,可以指定在同一时间要执行测试的次数。pan会记录测试产生的详细的格式复杂的输出,但它不进行数据的整理和统计,数据整理统计的工作由scanner来完成,scanner是一个测试结果分析工具,它会理解pan的输出格式,并通过表格的形式总结测试passed或failed的情况。简单地说,LTP测试套件通过执行测试脚本runalltests.sh(或runltp或runltplite.sh)或testscripts内的测试脚本,调用驱动程序pan执行testcases内的测试项目,输出测试结果,并利用scanner整理数据。

4      LTP测试套件测试内容

4.1     LTP测试套件测试内容

以ltp-20110228版本为例(目前是最新)。ltp-20110228测试内容主要包括以下几大部分:commands(常用命令测试),kernel(内核模块及其相关模块,如文件系统,磁盘读写等),kdump(内核转储),network(网络),realtime(系统实时性)open_posix_testsuite(posix标准),misc(崩溃,核心转储,浮点运算等)。以下是具体内容:

4.1.1   commands

cpio

mv

eject

mkdir

gzip

ln

mail

cp

su

size

at

objdump

cron

nm

logroate

ldd

tar

ld

unzip

file

ar

表4 commands

4.1.2   kernel

    这个模块主要对系统的文件系统、进程通信、模块管理、内存、系统调用、系统调度、磁盘读写、安全等进行功能和压力测试。详细内容如表5所示:

fs

connectors

Ipc

module

pty

timers

containers

hotplug

numa

sched

tracing

controlers

include

mce-test

performance_counters

security

device-drivers

io

mem

power_management

syscalls

表5 kernel相关测试内容

4.1.3   kdump

     kdump是系统崩溃转储功能,这个模块是对kdump工具实现崩溃转储的测试。

4.1.4   network

    network功能点非常多,包括dhcp,nfs,rpc,iproute等,具体如表6所示:

can

iproute

rpc

tcp_cmds

datafiles

iptables

multicast

sctp

traceroute

dhcpd

lib6

nfs

sockets

xinetd

nfsv4

stress

表6 network

4.1.5   realtime

realtime测试套件是对linux系统实时性进行测试。

4.1.6   open_posix_testsuite

     open_posix_testsuite测试套件是对linux系统open_posix符合性进行测试。

4.1.7   misc

misc包括系统crash,f00f,math,tcore_patch_test_suites测试。

4.2     测试方法说明

4.2.1   commands模块内容描述及实现方法

序号

测试内容

子测试点

内容含义

脚本说明

1

ade

ar

可以用来创建、修改库,也可以从库中提出单个模块

用来测试该系统命令的文件是runtest/commands,可以通过runltp脚本调用。例子:./runltp -f commands

file

辨识文件类型

ld

一定量的目标文件跟档案文件连接起来,并重定位它们的数据,连接符号引用

ldd

用来查看程序运行所需的共享库,常用来解决程序因缺少某个库文件而不能运行的一些问题

nm

显示目标文件的符号表

objdump

显示二进制文件信息

size

显示文件大小

2

at

任务规划工具。测试内容为/etc/at.allow和/etc/at.deny功能

测试脚本在testcases/bin/at.allow和testcases/bin/at.deny中

3

cpio

存取归档包中的文件

用来测试该系统命令的文件是runtest/commands,可以通过runltp脚本调用。例子:./runltp -f commands

4

cron

在一定的时间间隔调度一些命令的执行

5

eject

退出抽取式设备

测试脚本为:

testcases/bin/

eject-test.sh

6

fileutils

cp

复制命令

用来测试改系统命令的文件是runtest/commands,可以通过runltp脚本调用。例子:./runltp -f commands

ln

符号链接命令

mkdir

创建目录

mv

移动或重命名

7

gzip

解压缩命令

8

logrotate

管理记录文件

9

mail

收发邮件管理

10

su

变更用户

测试脚本为testcases/bin/su01,但在执行改脚本之前,系统需要安装有expect命令

11

tar

对文件目录进行打包备份

用来测试该系统命令的文件是runtest/commands,可以通过runltp脚本调用。例子:./runltp -f commands

12

tpm-tools

tpm-tools是TPM芯片的管理工具。对tpm-tools进行测试,需要确定系统安装有TPM芯片,且系统为Linux。

 TPM实际上是一个含有密码运算部件和存储部件的小芯片上的系统,由CPU、存储器、

I/O、密码运算器、随机数产生器和嵌入式操作系统等部件组成。

此功能在runtest中的tpm_tools中,可以使用runltp脚本加上tpm_tools参数执行,也可以在testscripts中调用tpm_tools脚本执行

13

unzip

解压缩zip文件

用来测试该系统命令的文件是runtest/commands,可以通过runltp脚本调用。例子:./runltp -f commands

表7 commands实现方法

4.2.2   kernel

编号

测试项

子测试项

对应脚本以及说明

含义

1

connectors

./runltp -f connecors

网络连接器测试

2

fs

acl

测试方法:

testcases/bin/tar_tests.sh

 测试ACL(访问控制列表)和Excent Attribute

备注:内核支持loop设备;一个大于100M的磁盘分区;内核支持ACL功能

3

acls

测试方法:

tescases/bin/acl_test01

测试扩展的acls

需求:同上

4

dmapi

dmapi功能验证测试

备注:ltp默认没有编译此功能需要到源目录执行,参照dmapi目录下的README

5

doio

testcases/bin/growfile

doio和读写测试

6

ext4-new-features

./runltp -f fs_ext4

ext4文件系统测试

7

fs-bench

testcases/bin/test.sh

文件系统的压力测试

8

fs_bind

/testscripts/test_fs_bind.sh

测试LINUX内核的绑定安装和共享子树的能力

9

fs_di

./runltp -f fs

文件系统的数据完整性

10

fs_inod

./runltp -f fs

在后台运行多个进程来快速创建和删除文件,用户可以指定创建的目录、文件数等

11

fs_maim

backbeat

maimparts

partbeat

fs_maim是存储管理工具压力测试集合

备注:因为fs_maim执行会损坏数据,因此并没有编译。详情参找源目录下到fs_maim目录

12

fs_perms

测试脚本:

./runltp -f fs_perms_simple

这个脚本是测试文件执行到权限,群组和用户组

13

fsstress

testcases/bin/fsstres;详细用法可以参照该脚本

文件系统压力测试

备注:文件系统压力测试默认添加到脚本testscripts/ltpstress.sh或runltp或runalltests

14

fsx-linux

./runltp -f fs

fsx文件系统的压力测试

15

ftest

./runltp -f fs

16

inode

./runltp -f fs

17

lftest

./runltp -f fs

18

linktest

./runltp -f fs

回归测试文件的连接,常见一个硬链接和一定数目的软链接

19

mongo

testcases/bin/test.sh 和testcases/bin/run_mongo和testcases/bin/mongo.pl

mongo文件测试

备注:测试mongo文件可能会擦除以前的内容,会损坏文件。详细配置见源目录下的mongo目录

20

openfile

./runltp -f fs

21

proc

testscripts/adp.sh

在proc文件系统上执行自动数据处理的压力测试

22

quote_remount

./runltp -f fs

测试内核是否支持重新挂载额定的大小文件

23

racer

./runltp -f fs

文件操作测试如:创建文件,删除等操作

24

scsi

/testscripts/ltp-scsi_debug.sh

测试SCSI模块

25

stream

./runltp -f fs

文件流写入测试

26

module

/testscripts/load_

stress_all_kernel_modules.sh或

./runltp  -f modules

对内核模块进行测试

27

ipc

Ipc_stresss

./runltp  -f ipc

进程间通信压力测试

28

pipeio

./runltp  -f pipes

ipc的管道压力

29

semaphore

./runltp  -f ipc

信号量测试

30

pty

./runltp  -f pty

终端类型的压力

31

timers

./runltp  -f timers

posix计时器测试

32

containers

./runltp  -f containers 或testscripts -f test_containers.sh

命名空间资源

32

hotplug

cpu_hotplug

/runtest/cpuhotplug

验证cpu的热插拔功能

33

memory_hotplug

testcases/bin/memtoy

验证内存的热插拔功能

备注:需要numa支持

34

numa

./runltp  -f numa

非统一内存访问

35

sched

./runltp  -f sched

调度压力测试

36

tracing

./runltp  -f /tracing

跟踪测试

备注:内核版本需要2.6.34以上

37

controllers

./runltp  -f controllers

资源管理测试

备注:内核版本2.6.29以上

38

performance_counters

./runltp  -f perfcounters

测试基本的性能计数

39

mce-test

LINUX内核mce的处理功能的测试脚本和工具集。

这是一个测试mce的测试套件需要编译。具体详情见该目录下的doc目录

40

security

securebits

./runltp  -f securebits

备注:这个功能需要至少2.6.32版本到内核,并且需要/usr/include/linux/securebits.h和libcap v2/usr/include/linux/securebits.h被安装

41

cap_bound

./runltp  -f cap_bounds

POSIX功能绑定设置

42

integrity

./runltp -f ima

测试体系结构的完整性(ima)

备注:需要内核支持

CONFIG_IMA=y

CONFIG_IMA_MEASURE_PCR_IDX=10

CONFIG_IMA_AUDIT=y

CONFIG_IMA_LSM_RULES=y

43

mmc_security

testcases/bin/ask_password.sh &&

testcases/bin/change_password.sh && testcases/bin/assign_password.sh && testcases/bin/force_erase.sh && testcases/bin remove_password.sh

用户界面的mmc密码保护支持

备注:需要安装keyutils包,在测试mmc之前需要配置keyutils

44

 smack

./runltp -f smack

测试smack安全模块

45

filecaps

./runltp -f filecaps或

testscripts/test_filecaps.sh

基于安全的文件功能测试套件

46

p9auth

./runltp -f p9auth

安全策略测试,如

openssl,caphash, capuse

47

selinux-testsuite

./runltp -f selinux

测试SELINUX安全模块

48

tomoyo

testcases/bin/testall.sh

tomoyo安全测试

备注:需要安装tomoyo包,并配置详情见源目录tomoyo目录

device-drivers(硬件设备驱动测试)

这一测试工具并没有编译,如果要测试执行下面的操作:1.进入想要测试的目录并运行make命令;2在源目录目录中,用insmod加载.o文件。3.运行insmod确定内核是否已经载入;4.到源目录运行*.sh或者是其他的可执行文件;5.其结果会被输出;6.这些测试通常会在几秒钟内完成,然后可能需要重启。

49

acpi

执行ACPI测试

50

base

51

dev_sim_framework

52

nls

支持本国语言测试

53

tbio

54

v4l

55

agp

加速图形接口测试

56

block

57

drm

58

misc_modules

59

pci

外部控制器接口(PCI)测试

60

rtc

测试etc(实时时钟)驱动

61

usb

usb接口 测试

62

io

aio

./runltp -f io

aio(异步输入输出)测试)

63

stress_floppy

testscripts/diskio.sh

软驱压力测试

64

disktest

testcases/bin/disktest

硬盘测试

备注:disktest使用较复杂。具体参照脚本和源目录下disktest说明文件

65

direct_io

./runltp -f

test_dma_thread_diotest7

66

ltp-aiodio

/testscripts/ltp-aiodio.sh

67

stress_cd

testscripts/diskio.sh

光驱压力测试

68

writetest

./runltp -f fs

写入测试

69

mem(内存测试)

./runltp -f mm

内存管理测试

70

power_management

./runltp -fpower_management_tests

电源管理测试

71

syscalls

./runltp -f runtest/syscalls

系统调用测试

表8 kernel相关内容测试方法

4.2.3   network

序号

测试内容

子测试点

内容含义

脚本说明

1

can

Controller area network

./runltp -f can,在测试之前需要/ltp-20110228/testcases/networ/can中配置,具体方法参照此目录下的INSTALL,此功能需要运行在linux-2.6.25以上版本。

2

dhcpd

测试dhcpd服务

运行方式:/runltp –f tcp_cmds,安装dhcpd服务

3

iproute

测试ip命令的基本功能

本地测试/ltp/testcases/network/iproute/ip_test.sh

4

lib6

Ipv6地址库测试

所属测试脚本networktests.sh,测试时后跟参数-L;也可以在runltp.sh脚本下跟ipv6_lib参数

6

nfs

网络文件系统测试,包括nfs压力测试

所属测试脚本networktests.sh,测试时后跟参数-N

需要开启nfs、portmap服务,并配置

7

rpc

rpc基本测试

rpc和rpc压力测试

所属测试脚本networktests.sh,测试时后跟参数-R,需要开启portmap服务或rpcbind服务;

或./runltp -f rpc

rpc-tirpc测试套件

rpc传输测试

脚本执行:./runltp -f  rpctirpc脚本详细配置见下

8

sockets

套接字测试

本地测试:/opt/ltp/testcases/bin/ ltpSockets.sh;需要跟参数运行

9

tcp_cmds

tcp命令测试:包括:arp,ftp,echo,host,finger,insclude,netstat,scp,rdist,rlogin,rsh,rwho,sendfile,ssh,tcpdump,telnet。

所属测试脚本networktests.sh,测试时后跟参数-T;也可以在runltp.sh脚本下跟 tcp_cmds参数进行测试

需要在测试时开启echo-stream服务、dhcpd服务等

arp测试需要远程主机和本地主机在同一个子网中。

finger命令测试需要开启fingerd守护进程,可以使用setup选择系统服务

rwho命令的测试需要在两台机子上安装并开启rwhod守护进程

tcpdump命令测试时也需要两台主机在同一个子网中。

10

xinetd

xinetd服务

本地测试,/opt/ltp/testcases/bin/xinetd_tests.sh或networktests.sh

11

iptable

iptables(防火墙管理)

运行方式:/runltp –f tcp_cmds或networktest.sh

12

multicast

多路广播测试

所属测试脚本networktests.sh,测试时后跟参数-M;也可以在runltp.sh脚本下跟 multicase参数进行测试

13

nfsv4

nfs v4 测试

所属脚本networktests.sh,也可单独执行:./runltp -f nfs

14

sctp

流传输控制协议测试

所属测试脚本networktests.sh,测试时后跟参数-S;也可以在runltp.sh脚本下跟sctp参数进行测试

15

stress

broken_ip

发送大量IP包

所属测试脚本networkstrss.sh,具体测试所跟参数后面介绍。在runtest目录中有对个各个功能的压力测试,可以单独测试。如:

./runltp -f network_stress.dns

./runltp -f network_stress.ftp

./runltp -f network_stress.http

./runltp -f network_stress.icmp

./runltp -f network_stress.interface

./runltp -f network_stress.multicast

./runltp -f network_stress.tcp

./runltp -f network_stress.udp

./runltp -f network_stress.route

./runltp -f network_stress.broken_ip

./runltp -f network_stress.appl

dns

DNS服务器正反向查找域名是的承受能力

ftp

ftp服务客户端大量请求、下载压力测试()

http

http服务器客户端大量请求压力测试

icmp

ICMP压力测试

interface

接口压力测试

multicast

多路广播压力测试

route

路由压力测试

ssh

建立大量ssh会话连接压力测试

tcp

tcp压力测试

udp

udp压力测试

16

traceroute

路由跟踪测试

本地测试:

/opt/ltp/testcases/bin/traceroute_testss.sh

表9 network 测试方法

4.2.4   open_posix_testsuite

序号

测试内容

子测试点

内容含义

备注

1

AIO

执行异步I/O测试

执行run_posix_option_group_test.sh加参数AIO运行

2

SIG

执行信号测试

执行run_posix_option_group_test.sh加参数SIG运行

3

SEM

执行信号测试

执行run_posix_option_group_test.sh加参数SEM运行

4

THR

执行线程测试

执行run_posix_option_group_test.sh加参数THR运行

6

TMR

执行定时器和时钟测试

执行run_posix_option_group_test.sh加参数TMR运行

7

MSG

执行消息队列测试

执行run_posix_option_group_test.sh加参数MSG运行

8

TPS

执行线程和进程同步测试

执行run_posix_option_group_test.sh加参数TPS运行

9

MEM

执行映射,处理和共享内存测试

执行run_posix_option_group_test.sh加参数MEM运行

表10 posix测试

4.2.5   realtime

序号

测试内容

子测试点

内容含义

备注

1

func

async_handler

异步处理程序

脚本为testscripts/test_realtime.sh

gtod_latency

gtod延迟

hrtimer-prio

高精度时间处理 优先级

matrix_mult

矩阵乘运算

 measurement

测量

periodic_cpu_load

定期CPU负载

 pi_perf

压力pi

pi_tests

测试pi

prio-preempt

抢占优先级

prio-wake

唤醒优先级

pthread_kill_latency

posix线程终止延迟

rt-migrate

逆转录迁移

sched_football

足球附表

sched_jitter

抖动附表

sched_latency

延时附表

thread_clock

时钟线程

2

perf

所有的性能检测

3

stress

所有的压力检测

表11 realtime测试

5      LTP测试套件配置详细

5.1      networktests.sh脚本配置

(1)     配置前提

A.      开启所有网络服务,在客户端和服务端上安装rshd,fingerd,nfsd,echo服务;

B.       在服务端上安装rsh服务,telnet服务,finger服务,rdist,rsync,dhcp,http,rwho服务。如果没有开启服务,则在客户端测试时会报错。添加开机启动服务如:

chkconfig[rsh/rlogin/telnet/finger/rexec/rwhod] on

C.       在客户端和服务端编辑/root/.rhosts, 192.168.12.25是服务端的主机名,192.168.12.20是客户端的主机名。如下:

192.168.12.25        root

192.168.12.20          root

D.      在服务端vi /etc/securetty,添加以下内容:

rsh

rlogin

rexec

ssh

telnet

ftp

E.        FTP setup

在服务端编辑/etc/ftpusers或/etc/vsftpd.ftpusers或/etc/vsftpd/vsftpd.ftpusers注释掉root用户,需要安装FTP软件vsftp或其他;

F.       NFSsetup

在服务端编辑/etc/exports,添加如下内容:

/192.168.12.*(rw,sync,no_root_squash)

并用命令exportfs -a使其生效。

G.      服务端dhcp

 编辑/etc/dhcpd.conf,添加以下内容,dhcp配置方法详细略;

ddns-update-style interim;

ignore client-updates;

subnet 192.168.12.0 netmask255.255.255.0 {

# --- default gateway

       option routers                 192.168.12.254;

       option subnet-mask             255.255.255.0;

       option nis-domain              "domain.org";

       option domain-name             "domain.org";

       option domain-name-servers     192.168.12.25;

       option time-offset             -18000; # Eastern Standard Time

#      option ntp-servers             192.168.1.1;

#      option netbios-name-servers     192.168.1.1;

# --- Selects point-to-point node(default is hybrid). Don't change this unless

# -- you understand Netbios very well

#      option netbios-node-type 2;

       range dynamic-bootp 192.168.12.0 192.168.12.253;

       default-lease-time 21600;

       max-lease-time 43200;

       # we want the nameserver to appear at a fixed address

#      host ns {

#               next-server marvin.asianux.com;

#               hardware ethernet12:34:56:78:AB:CD;

#               fixed-address 207.175.42.254;

#      }

H.      在客户端开启rsh,finger,nfs服务,rsh,finger是由xinetd守护进程启动;

[root@CentOS ]# service xinetd start

启动 xinetd:                                              [确定]

[root@CentOS testscripts]# serviceportmap start

启动 portmap:                                             [确定]

[root@CentOS testscripts]# servicenfs  start

I.         在服务端开启rsh,telnet,finger,rdist,rysnc,dhcp,http服务。Rsync,telnet也由守护进程xinetd启动。注:有些linux系统不是启动portmap,而是启动rpcbind;

[root@server25 ~]# service xinetdrestart

Stopping xinetd:                                                 [OK]

Starting xinetd:                                                 [OK]

[root@server25 ~]# service dhcpd restart

Stopping dhcpd:                                                [OK]

Starting dhcpd:                                                  [OK]

[root@server25 ~]# service portmaprestart

Stopping portmap:                                                [OK]

Starting portmap:                                                 [OK]

[root@server25 ~]# service nfs restart

root@server25~]# /etc/init.d/httpd start

(2)     在客户端上编辑networktests.sh脚本,RHOST为服务端的主机名,PASSWD为服务端root用户密码。如下:

  RHOST=192.168.12.25

PASSWD=123456

同时添加${TMPDIR}//network.tests –s0 –l<logfile> -o <outfile> -p –q

其中

-s0 -> 无限制循环运行。

-l -> ltpnetwork  日志名。

-o -> ltpnetwork 输出文件名。

(3)     执行脚本./networktests.sh

networktest脚本参数说明:

-W|w

对所有网络测试项进行测试

-D|d

默认的网络测试项

-6

测试Ipv6

-L|l 

Ipv6地址库测试

-M|n

多路广播测试

-N|n

nfs测试

-R|r 

rpc测试

-S|s

sctp测试

-T|t 

TCP/IP命令测试

-V|v

详细信息

-H|h

显示帮助

其他

默认测试

表12 networktest参数表

备注:默认测试将执行rpc,nfs,multicast,tcp/ip命令。TCP/IP命令的rsh,telnet,iptables部分测试存在问题;一般此测试只要运行24小时,停止可以通过CTRL+C。

5.2       networkstress.sh配置

A.      前提条件

网络压力测试前提同网络测试,并且需要两台拥有两个以上网络接口的主机,这个测试的拓扑结构如图1:

图1

网络压力测试配置同网络功能测试配置,另外在测试网络压力时还需要开启httpd和ftp服务,sshd和dns服务不需要手动开启,测试时会自动将该服务开启。

B.       脚本配置

在运行脚本之前需要对脚本进行以下配置:

图2网络环境设置

解释说明:

RHOST  

远程主机名

RHOST_HWADDRS    

远程主机的MAC地址

HTTP_DOWNLOAD_DIR

http下载存放目录

FTP_DOWNLOAD_DIR

FTP下载存放目录

FTP_UPLOAD_DIR     

FTP上传目录

FTP_UPLOAD_URLDIR

FTP上传的URL,只需要写出后面的目录即可

IPV4_NETWORK

前三个字节的IP地址

LHOST_IPV4_HOST

本地主机的最后一个字节的地址

RHOST_IPV4_HOST

远程主机的最后一个字节的地址

IPV4_NETWORK_REVERSE

反向解析地址

表13环境设置

注意:如果测试的是eth1端口,那么RHOST为远程主机eth0的IP地址,IPVR4-NETWORK是本地IP地址的前3位,LHOST-IPV4-HOST是要设置的eth1的IP地址的最后一位,RHOST-IPV4-HOST也是如此配置,RHOST_HWADDRS为远程主机eth1的MAC地址。另一个需要注意的问题是,在远程主机需要配置rsh,本地主机可以通过eth0和eth1的IP地址无密码登录远程主机。

测试压力值配置:

图3 网络压力值设置

解释说明:

LTP_RSH

◇   无密码登录远程主机的方式,例如rsh或ssh。

◇   NS_DURATION(for the continual test)

持续测试时间。这个测试时间的单位是秒,这个指标主要影响icmp/tcp/udp, ssh,ftp,http。

◇   NS_TIMES(for the repetition test)

重复性测试,这个值主要影响的是IP地址的添加和删除、IP路由的变更以及DNS的查询测试。

◇   CONNECTION_TOTAL(for creating a large number of connection test)

连接总数,这个值主要对udp/tcp下的相同或不同端口的多连接有影响,以及对ftp和http的测试用例有影响。

◇   IP_TOTAL     (for adding large number of IP addresstest)

    增加大量IP地址的测试,对一个接口增加大量的IP地址,这个值主要影响接口测试。

◇   IP_TOTAL_FOR_TCPIP     (for multi IP address/alias test inicmp/udp/tcp)

在TCP/UDP/ICMP上的对IP地址或别名的测试。对于TCP/IP的测试用例,增加一个接口增加大量的IP地址,这个值会影响UDP/ TCP连接到不同的IP 地址/别名测试用例。

◇   ROUTE_TOTAL  (for adding large number of route test)

在一个接口上增加大量的路由,从而对接口进行压力测试。

◇   MTU_CHANGE_TIMES    (for changing mtu test)

接口最大传输单元值的改变次数,改变的时间间隔为5s。因此改变的时间要求5xMTU_CHANGE_TIMES这个值主要是对接口进行测试。

◇   IF_UPDOWN_TIMES (for interface up/down test)

     网络接口开关次数。

◇   MCASTNUM_NORMAL      (for multicast tests)

     针对于多路广播的测试,加入广播的数目。

◇   MCASTNUM_HEAVY (for multicast tests)

     多路广播测试。

◇   DOWNLOAD_BIGFILESIZE      (for http/ftp downloading stress test)

    下载文件大小,对FTP/HTTP下载压力测试。

◇   DOWNLOAD_REGFILESIZE     (for http/ftp downloading stress test)

    大量用户下载该文件,主要是对ftp的下载和http的测试。

◇   UPLOAD_BIGFILESIZE     (for ftp uploading stress test)

   上传文件大小,这个测试主要针对于ftp的上传压力测试,要保证有足够大的剩余空间。

◇   UPLOAD_REGFILESIZE    (for ftp uploading stress test)

   ftp上传压力测试。

C.       脚本执行

./networkstress.sh[选项]

选项说明:

-E|e

网络接口压力测试

-I|i         

ICMP协议压力测试

-T|t        

TCP/IP压力测试

-U|u

UDP/IP压力测试

-M|n      

多路广播压力测试

-R|r

路由表压力测试

-B|b

IP破坏性测试

-S|s

选择测试

-W|w

所有网络项压力测试

-D|d

测试时间(默认为1小时)

-N|n

选择网络接口

-V|v

详细信息

-H|h

显示帮助

表14networkstress.sh参数表

D.       备注

在配置networkstress.sh脚本时需要双网卡,通过配置eth0,eth1用于rsh或ssh链接,eth1则用于网络测试接口。因此在设置networkstress.sh时,作如下配置:

export TMPDIR=/tmp/netst-$$

mkdir $TMPDIR

VERBOSE="no"

INTERFACE="eth1"

    因为配置IPV6和IPSec,在测试这两个案例存在错误,是正常情况。有些测试用例需要内核等支持。

5.3      open_posix_testsuite测试套件

对于open_posix_testsuite测试套件配置,ltp默认没有编译。要进行posix标准测试,首先在ltp源包目录,进入testcases/open_posix_testsuite,使用make命令进行编译,编译成功后,在bin目录下会生成run-posix-option-group-test.sh、run-all-posix-option-group-tests.sh两个脚本,执行脚本run-all-posix-option-group-tests.sh可执行所有测试,但该脚本存在问题。如下修改:

!/bin/sh

#

# A simple wrapper for executing all ofthe tests.

#

# See COPYING for licensing details.

#

# Garrett Cooper, July 2010

#

FAILED=0

RPOG_SCRIPT="./run-posix-option-group-test.sh"

for option_group in AIO MEM MSG SEM SIGTHR TMR TPS; do

             if !  $RPOG_SCRIPT $option_group

               then FAILED=1

             fi

done

exit $FAILED

解释说明:

在执行脚本时调用执行run-posix-option-group-test.sh脚本,在执行遇到错误时,将以错误退出。

脚本run-posix-option-group-test.sh可分别对posix内容进行测试,其执行方法为:

用法:run-posix-option-group-test.sh  [选项]:

AIO,执行异步I/O测试:./run-posix-option-group-test.sh AIO

SIG,执行信号测试:./run-posix-option-group-test.sh SIG

SEM,执行信号量测试:./run-posix-option-group-test.sh SEM

THR,执行线程测试:./run-posix-option-group-test.sh THR

TMR,执行定时器和时钟测试:./run-posix-option-group-test.sh TMR

MSG,执行消息队列测试:./run-posix-option-group-test.sh MSG

TPS,执行线程和进程同步测试:./run-posix-option-group-test.sh TPS

MEM,执行映射,处理和共享内存测试:./run-posix-option-group-test.sh MEM

5.4      realtime配置

进入ltp源目录,在testscripts目录中执行test_realtime。执行方法如下:

用法:test_realtime.sh  -t test-argument [-l loop num_of_iterations][-t test-argument1 [-l loop ...]] ...

其中test-argument = func | stress | perf |all | list | clean | test_name

解释说明:

 func =    所有的功能将被测试

 stress =   所有的压力测试将被执行

 perf =     所有的perf项将被执行

 all =        所有的测试将被执行

 list =      列出所有可测试项

 clean =   清除所有执行和日志

 test_name =   只有test_name subdir 将被执行 (e.g:func/pi-tests)

5.5       mm脚本的配置

(1)       该脚本必须由root用户来使用;

(2)       执行该脚本要求系统必须已经安装了mm-1.4.2.tar.gz,并且把它安装在/usr/local/lib/;

(3)       安装完成后即可执行该脚本不需要进行其它的配置;

(4)       执行测试的命令是:./runltp -p -f mm;

5.6       io脚本配置

(1)       该脚本必须由root用户来使用;

(2)       执行该脚本要求系统必须安装了libaio-0.3.92;

(3)       执行测试:

[root@CentOSltp]# ./runltp -p -f io

(4)       执行结果:

<<<test_start>>>

tag=aio01stime=1302158338

…………..

INFO: ltp-panreported all tests PASS

5.7       filecaps的配置

(1)       该脚本也是必须由root用户使用的,测试需要安装libcaps-2.11或者是更高的版本,而且要求系统中的libattr是可以提供使用的;

(2)       要求系统内核的配置是:CONFIG_SECURITY_FILE_CAPABILITIES=y;

(3)       执行测试:

 [root@CentOS ltp]# ./runltp -p -f filecaps                                      

(4)       测试结果

……………………………

tag=Filecaps stime=1303111621

cmdline="filecapstest.sh"

contacts=""

analysis=exit

<<<test_output>>>

Running in:

cap_sys_admin tests

filecaps    1 TCONF  :  System doesn't have POSIX capabilitiessupport.

testing for correct caps

filecaps    1 TCONF  :  System doesn't have POSIX capabilitiessupport.

testing for correct pI checks

filecaps    1 TCONF  :  System doesn't have POSIX capabilitiessupport

……………………

INFO: ltp-pan reported all tests PASS

5.8       tpm_tools的配置

执行的命令:ltp目录下执行./runltp –ftpm_tools或者在testscripts下执行./test_tools

5.9       tcore的配置

前提条件:需要expect 命令支持,查看系统是否安装expect工具。 

  tcore是核心转储测试脚本。执行命令:./runltp -f tcore。

5.10 io_floppy的配置

(1)       该脚本需要软驱才能够执行所以我们不对其进行测试;

(2)       要求系统具有软驱;

(3)       执行测试的命令:./runltp -p –f io_floppy (注:执行测试以后软驱中的所有的数据将会丢失)。

5.11 io_cd 的配置

(1)       确定光驱中有CD;

(2)       执行测试的命令是:./runltp -p –f io_cd。

5.12 cpuhotplug的配置

(1)       对于该脚本需要内核支持:

CONFIG_HOTPLUG=y

CONFIG_HOTPLUG_CPU=y

CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y

CONFIG_ACPI_HOTPLUG_CPU=y

CONFIG_HOTPLUG_PCI_PCIE=y

CONFIG_HOTPLUG_PCI=y

CONFIG_HOTPLUG_PCI_FAKE=y

CONFIG_HOTPLUG_PCI_COMPAQ=y

CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM=y

CONFIG_HOTPLUG_PCI_IBM=y

CONFIG_HOTPLUG_PCI_ACPI=y

CONFIG_HOTPLUG_PCI_ACPI_IBM=y

CONFIG_HOTPLUG_PCI_CPCI=y

CONFIG_HOTPLUG_PCI_CPCI_ZT5550=y

CONFIG_HOTPLUG_PCI_CPCI_GENERIC=y

CONFIG_HOTPLUG_PCI_SHPC=y

需要对/opt/ltp/testcases/bin/cpu_hotplug/runtests.sh的第14行做如下的修改:

 14  for case in$LHCS_PATH/functional/hotplug??.sh; do

  备注:红色字体表示行号。

(2)       执行测试:

[root@CentOS ltp]# ./runltp -p -fcpuhotplug

5.13 adp.sh的配置

(1)      该脚本不需要进行配置;

(2)      执行测试:

 [root@CentOS testscripts]# ./adp.sh -d 2 -n 2

(3)      测试结果:

Starting tests...

Stressing /proc/[0-9]*/cmdline...

Starting 'top', redirecting output to'adp.log'...

LTP ADP Test done. Killing processes...

./adp.sh: line 82: 18995 已终止               ./adp_test.sh

./adp.sh: line 82: 18997 已终止               ./adp_test.sh

./adp.sh: line 82: 19000 已终止               ./adp_test.sh

./adp.sh: line 82: 19004 已终止               ./adp_test.sh

./adp.sh: line 82: 19008 已终止               ./adp_test.sh

./adp.sh: line 83: 18990 已终止               ./adp_children.sh

./adp.sh: line 83: 18991 已终止               ./adp_children.sh

./adp.sh: line 83: 18992 已终止               ./adp_children.sh

./adp.sh: line 83: 18993 已终止               ./adp_children.sh

./adp.sh: line 83: 18994 已终止               ./adp_children.sh

Done. Please check adp.log.

2011年 04月 07日 星期四 16:31:20 CST

备注:

该脚本需要带参数运行,“-d”表示top的延期时间,“-n”top的迭代次数。输出的信息在adp.log中。

5.14 autofs1.sh和autofs4.sh的配置

(1)要求系统的软驱中含有软盘。

(2)要求系统的空闲的磁盘分区的大小应该大于等于100MB。

(3)执行测试的命令:./autofs1.sh和./autofs4.sh。

5.15 exportfs.sh的配置

(1)开启NFS服务和portmap服务:

[root@server25 ~]# service nfs start

[root@server25 ~]# serviceportmap start

(2)要有大于等于100MB空间空闲磁盘分区,而且该分区要为主分区;

(3)执行测试:

[root@server20 testscripts]#./exportfs.sh -h server25 -d /dev/sda4 -t ext3

(4)测试结果:

mke2fs 1.39 (29-May-2006)

/dev/sda4 is mounted; will not make afilesystem here!

mount: /dev/sda4 already mounted or/tmp/exportfs_2196 busy

mount: according to mtab, /dev/sda4 ismounted on /tmp/exportfs_1710

umount: /tmp/exportfs_2196: not mounted

PASSED: ./exportfs.sh passed!

备注:

   -h 后面加主机名;-d 后面加磁盘分区;-t 后面加文件系统的类型。

5.16 isofs.sh的配置

(1)必须有root权限来执行这个脚本;

(2)执行测试:

[root@server25 testscripts]# ./isofs.sh

(3)测试结果:

……………….

/tmp/isofs_3895/zabbix:

总计32

-rw-r--r-- 1 root root 18898 04-11 14:13db.inc.php

-rw-r--r-- 1 root root  1121 04-11 14:13 zabbix_agent.conf

-rw-r--r-- 1 root root  2689 04-11 14:13 zabbix_agentd.conf

-rw-r--r-- 1 root root   160 04-11 14:13 zabbix.conf.php

-rw-r--r-- 1 root root  4537 04-11 14:13 zabbix_proxy.conf

-rw-r--r-- 1 root root  3843 04-11 14:13 zabbix_server.conf

PASSED: ./isofs.sh passed!

5.17 ltpdmmapper.sh的配置

   (1)内核必须支持“device mapper”,而且要在系统中安装devcie-mapper包;

   (2)系统要有两个分区;

   (3)执行测试:

[root@server25 testscripts]#./ltpdmmapper.sh -a /dev/sda3 -b /dev/sda5

   (4)测试结果:

……………

Device Status...

0 102400 linear

0 200000 linear

0 200000 linear

0 400000 striped 2 8:3 8:5 1 AA

Device Tables...

0 102400 linear 8:3 0

0 200000 linear 8:3 0

0 200000 linear 8:5 0

0 400000 striped 2 16 8:3 0 8:5 0

Device Mapper Remove-all...

………..

5.18 ltpfslvm.sh的配置及要求

   (1)要求系统以0x8e的形式划分4个分区;

   (2)如果内核是2.4版本必须被配置然后重建内核,在2.5版本的内核上应当先配置Device Mapper和安装LVM2;

   (3)这些操作是破坏性的,所以要求指定的分区中应该不含有重要的文件内容,执行该操后被使用的分区中的内容会被删除;

  (4)执行测试:

[root@server25 testscripts]#./ltpfslvm.sh -a /dev/sda4 -b /dev/sda5 –c /dev/sda6 –d /dev/sda7 –n192.168.14.22:/tmp

  (5)输出结果:

<<<test_start>>>

tag=gf822 stime=1302624179

cmdline="growfiles -W gf822 -D 0 -b-i 0 -L 60 -u -B 1000b -e 1 -g 20480 -T 10 -t 20480/test/growfiles/jfs/gf-bldf-$$"

contacts=""

analysis=exit

<<<test_output>>>

incrementing stop

gf822       1 TPASS  :  Test passed

5.19 ltpfsnolvn.sh的配置及要求

   (1)对其的配置好要求如前面6.15;

   (2)执行的命令:.

/ltpfsnolvm.sh -a /dev/sda4 -b /dev/sda5–c /dev/sda6 –d /dev/sda7 –n 192.168.14.22:/tmp

5.20 ltp-scsi_debug.sh的配置及要求

(1) 要求内核支持scsi_debug模块;

(2) 需要内核开启下面的服务CONFIG_SCSI_DEBUG;

(3) 执行测命令./ltp-scsi_debug.sh。

5.21 sysfs.sh的配置及要求

   (1)要求必须要有root权限来执行该脚本;

   (2)要求内核配置为CONFIG_DUMMY=y,而且dummy network模块必须存在;

   (3)执行测试:

[root@CentOS  testscripts]# ./sysfs.sh -k/lib/modules/2.6.18-194.el5/kernel/drivers/net/dummy.ko

(4)测试结果:

PASSED: ./sysfs.sh passed!  

备注:-k后面加内核模块,也可以不加参数,不加的时候测试的是默认模块。

5.22 rpctirpc的配置及要求

(1) 介绍

RPC(Remote ProcedureCall Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使包括网络分布式多程序在内的应用程序开发更加容易。

(2) 配置说明

在LTP源文件目录中有关于RPC的测试套件,此套件分为两类:一类是基本的测试套件,主要测试对象是单客户端-服务器模式;另一类包括所有的测试库,如SunRPC、TI-RPC。

下面就详细介绍一下TI-PRC测试套件的配置和用法:

在使用测试套件之前,需要准备一台以上的主机,并且所有的主机必须运行ssh服务。在运行ssh服务是要在各主机上配置无密码登陆方式。具体如下(以一台主机为例):

图4生成ssh密钥

将公钥传到服务器端:

图5

经过上述步骤就完成了对ssh无密码登录的配置。

(3) 快速安装套件

在终端运行一下命令,安装和配置测试套件:

$./configure.auto

或者

$./configure.interactive

配置测试套件运行方式(IP,登录):

$make deploy

$make all

这时就完成了配置,就可以使用此测试套件了。

(4) 运行测试套件

a.运行所有的测试内容

./rpc_ts_wizard.sh -all

b.运行部分测试内容

./rpc_ts_wizard.sh

在运行此部分时,会提示你选择要测试的内容,如RPC、TI-RPC或者两者都要测试等。

5)在runtest目录级别运行

$./runtlp –f rpc

或者

$./runltp –f tirpc

或者

$./runltp –f rpctirpc

5.23 test_selinux.sh的配置及要求

(1)要求把/usr/sbin添加到PATH中;

(2)在/etc/seliinux/semanage.cong中添加expand-check=0;

(3)查看内核是否开启以下的功能(如果没有则需要开启):

CONFIG_SECURITY=y

CONFIG_SECURITY_NETWORK=y

CONFIG_SECURITY_NETWORK_XFRM=y

CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0

This has to be set to a positive valueif you want to test this check.

Fedora kernels set it to 65536.

CONFIG_SECURITY_SELINUX=y

CONFIG_SECURITY_SELINUX_BOOTPARAM=y

CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=1

CONFIG_SECURITY_SELINUX_DEVELOP=y

CONFIG_SECURITY_SELINUX_AVC_STATS=y

CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1

CONFIG_SECURITY_SELINUX_ENABLE_SECMARK_DEFAULT=y

CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX=y

You don't want this one unless you arerunning Fedora 3 or 4.

On anything newer, it will causeunnecessary policy expansion.

CONFIG_SECURITY_SMACK=y

CONFIG_SECURITY_SELINUX=y

(4)执行测试:

[root@CentOS ltp]# ./runltp -p -fselinux

5.24 smack的配置和要求

  (1)要求smack和selinux不能够同时运行,不能测试同一个运行中的内核;

  (2)查看内核是否开启以下的功能(如果没有则需要开启):

CONFIG_NETLABEL=y

CONFIG_SECURITY=y

CONFIG_SECURITY_NETWORK=y

CONFIG_SECURITY_SMACK=y

CONFIG_SECURITY_SELINUX should not beset

执行如下的命令:

mkdir -p /smack

在文件/etc/fstab添加下面的一行

smackfs /smack smackfs defaults 0 0

然后执行下面的命令:

mount –a

   (3)执行的命令

[root@CentOS ltp]# ./runltp -f smack

5.25 perfcounters的配置及要求

(1)执行测试:

[root@CentOS ltp]# ./runltp -p -fperfcounters

(2)测试结果:

……………..

<<<test_start>>>

tag=performance_counter01stime=1302139743

<<<test_start>>>

tag=performance_counter02stime=1302139743

………………………….

INFO: ltp-pan reported all tests PASS

5.26 can的配置及要求

CAN(Controller AreaNetwork)是一个缓慢(高达1Mbit/ s)的串行通信协议,主要为汽车,但现在广泛应用于海洋(NMEA2000),工业和医疗。

备注:该模块的运行需在linux-2.6.25或者以上版本中,并且在运行之前需要在文件的源目录(例如:/opt/ltp-20110228/testcases/networ/can/filter-tests)中进行配置。

配置如下:

1)     创建测试环境

$make

2)     ./run_ltp-can_tests.sh

3)     在安装目录中运行

$ ./runltp -f can

4)     清除使用痕迹,在源目录中运行

$ make clean

5.27 test_robind.sh的配置

(1)要求要有一个镜像文件,创建两个目录;

(2)把该镜像文件挂载到指定的目录:

[root@centos22  chenbo]# mount -t iso9660ubuntu-10.10-desktop-i386.iso -o loop /chenbo

(3)把有一个目录绑定到另一个目录:

[root@centos22 chenbo]# mount --bind chenbochenbo1

(4)执行下面的命令:

[root@centos22 /]# mount chenbo -o  remount,ro

(5)执行测试(要在只读目录中执行脚本):

[root@centos22 chenbo]#../opt/ltp/testscripts/test_robind.sh

/tmp/fs3522/dir1 /tmp/fs3522

TDIR is /tmp/fs3522/dir1

(6)执行结果:

执行的结果存放在/tmp下面,有若干个名字如fs加数字目录,目录中的pass.log和errs.log分别存放了成功的和错误的信息。

6      LTP测试套件使用说明

6.1     概述

LTP提供了两个非常强大的脚本:runalltests.sh和ltpstress.sh。runalltest.sh 用于验证内核。这个脚本串行地运行一组测试,并报告全部结果。因此,也可称这个脚本为初始测试或串行压力测试。默认地,这个脚本执行:

-     文件系统压力测试。

-     硬盘 I/O 测试。

-     内存管理压力测试。

-     IPC 压力测试。

-     SCHED测试。

-     命令功能的验证测试。

-     系统调用功能的验证测试。

     但runalltests.sh还提供了其他方面的测试:如网络,网络压力,NFS,光驱压力等等(runalltests.sh详细使用见下)。ltp提供的测试内容不完全写入runalltests.sh,测试时可以根据需求修改runalltests.sh并添加内容,相关配置可以参考《LTP测试套件配置详细》。需要注意的是:默认情况,runalltests.sh和runltp执行的内容是一样,因为默认的runalltest.sh脚本只开启了runltp默认的场景。runltp默认执行的就是上面7方面内容。

   runltp脚本可以执行指定的测试项目,因此测试可以根据需求或指标设计一套压力测试脚本。

ltpstress.sh是一个并行的压力测试脚本,在使用网络与内存管理的同时并行地运行大范围的内核组件,并在测试系统上生成高压力负荷。ltpstress.sh 也是 LTP 测试套件的一部分。这个脚本并行地运行相似的测试用例,串行地运行不同的测试用例,这样做是为了避免由于同时访问同一资源或者互相干扰而引起的间歇性故障。因此这个测试脚本可以称为系统压力测试。默认地,这个脚本执行:

-     NFS 压力测试。

-     内存管理压力测试。

-     文件系统压力测试。

-     数学 (浮点) 测试。

-     多线程压力测试。

-     硬盘 I/O 测试。

-     IPC (pipeio, semaphore) 测试。

-     系统调用功能的验证测试。

-     网络压力测试。

   ltpstress压力测试可以验证产品在系统资源高使用率时的健壮性。

6.2     初始测试

6.2.1   runltp使用说明

用法:./runltp [option] [command]

-a EMAIL_TO

发送所有的报告到指定的邮箱

-c NUM_PROCS

添加后台测试CPU的进程数,默认1

-C FAILCMDFILE

失败案例存储文件

-d IMPDIR

临时存储目录,默认/tmp

-D NUM_PROCS,NUM_FILES,NUM_BYTES,CLEAN_FLA

run LTP under additional background Load on Secondary Storage (Seperate by comma)

    [NUM_PROCS   = no. of processes creating Storage Load by spinning over write()]

    [NUM_FILES   = Write() to these many files (Defaults to 1 when value 0 or undefined)]

    [NUM_BYTES   = write these many bytes (defaults to 1GB, when value 0 or undefined)]

    [CLEAN_FLAG  = unlink file to which random data written, when value 1]

-e

输出目前LTP版本的日期

-f CMDFILES

执行用户自定义的测试案例,用“ ,”隔开(CMDFILES指runtest内的驱动程序)

-g HTMLFILE

添加html格式的输出文件HTMLFILE

-h

帮助信息

-i NUM_PROCS

添加后台测试IO bus总线的进程数

-l LOGFILE

记录测试日志的文件

-m NUM_PROCS,CHUNKS,BYTES,HANGUP_FLAG 

run LTP under additional background Load on Main memory (Seperate by comma)

    [NUM_PROCS   = no. of processes creating main Memory Load by spinning over malloc()]

    [CHUNKS      = malloc these many chunks (default is 1 when value 0 or undefined)]

    [BYTES       = malloc CHUNKS of BYTES bytes (default is 256MB when value 0 or undefined) ]

    [HANGUP_FLAG = hang in a sleep loop after memory allocated, when value 1]

-N

添加所有的网络测试

-n

添加后台测试网络传输

-o OUTPUTFILE

直接打印测试输出到OUTPUTFILE

-p

人为指定日志格式

-q

打印少的测试输出到屏幕

-r  LTPROOT

-s  PATTERN

匹配PATTERN执行测试案例

-t  DURATION

给定测试执行时间设置(s,m,h,d)

-T REPETITION

重复执行测试案例

-v

打印多的测试输出到屏幕

-w CMDFILEADDR

使用wget下载用户测试案例集合。

-x INSTALL

并行执行多个测试场景

表15 runltp参数表

6.2.2   runalltests.sh脚本说明

runalltests.sh此脚本直接运行,默认是测试所有LTP能测试的方面。

这篇关于linux下LTP工具说明的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!