测试工具的使用说明_第1页
测试工具的使用说明_第2页
测试工具的使用说明_第3页
测试工具的使用说明_第4页
测试工具的使用说明_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、测试工具的使用说明1. atop atop是一个高级的Linux系统全屏性能监视器,会定期的显示CPU、内存、磁盘、网络的负载信息。在终端输入./atop会出现如下界面:在界面中键入m,就会显示每个进程的内存情况,如下图: 在界面中键入s, 就会显示与调度有关的进程信息,如下图:在界面中键入v,就会显示每个进程的全部信息,如下图:在界面中键入c,就会显示每个进程的命令行,如下图:系统资源监控字段含义上图中列出了不少字段以及数值,各字段的含义是什么?我们应该怎么看?以上每个字段的含义都是相对采样周期而言的,下面我们先来关注上图显示的上半部分。ATOP列:该列显示了主机名、信息采样日期和时间点PR

2、C列:该列显示进程整体运行情况1. sys、usr字段分别指示进程在内核态和用户态的运行时间2. #proc字段指示进程总数3. #zombie字段指示僵死进程的数量4. #exit字段指示atop采样周期期间退出的进程数量CPU列:该列显示CPU整体(即多核CPU作为一个整体CPU资源)的使用情况,我们知道CPU可被用于执行进程、处理中断,也可处于空闲状态(空闲状态分两种,一种是活动进程等待磁盘IO导致CPU空闲,另一种是完全空闲)1. sys、usr字段指示CPU被用于处理进程时,进程在内核态、用户态所占CPU的时间比例2. irq字段指示CPU被用于处理中断的时间比例3. idle字段指

3、示CPU处在完全空闲状态的时间比例4. wait字段指示CPU处在“进程等待磁盘IO导致CPU空闲”状态的时间比例CPU列各个字段指示值相加结果为N00%,其中N为cpu核数。cpu列:该列显示某一核cpu的使用情况,各字段含义可参照CPU列,各字段值相加结果为100%CPL列:该列显示CPU负载情况1. avg1、avg5和avg15字段:过去1分钟、5分钟和15分钟内运行队列中的平均进程数量2. csw字段指示上下文交换次数3. intr字段指示中断发生次数MEM列:该列指示内存的使用情况1. tot字段指示物理内存总量2. free字段指示空闲内存的大小3. cache字段指示用于页缓存

4、的内存大小4. buff字段指示用于文件缓存的内存大小5. slab字段指示系统内核占用的内存大小SWP列:该列指示交换空间的使用情况1. tot字段指示交换区总量2. free字段指示空闲交换空间大小PAG列:该列指示虚拟内存分页情况swin、swout字段:换入和换出内存页数DSK列:该列指示磁盘使用情况,每一个磁盘设备对应一列,如果有sdb设备,那么增多一列DSK信息1. sda字段:磁盘设备标识2. busy字段:磁盘忙时比例3. read、write字段:读、写请求数量NET列:多列NET展示了网络状况,包括传输层(TCP和UDP)、IP层以及各活动的网口信息1. XXXi 字段指示

5、各层或活动网口收包数目2. XXXo 字段指示各层或活动网口发包数目进程视图为了更全面地展示进程信息,atop提供了多种进程视图。默认视图(Generic information)进入atop信息界面,我们看到的就是进程信息的默认视图(上图下半部分),按g键可以从其他视图跳到默认视图。从上图中,我们可以看到PID为3061的find进程在退出前在内核模式下占用了3.43秒CPU时间,在用户模式下占用了0.96秒CPU时间,共使用CPU时间为4.39秒,相对10分钟采样周期,CPU时间占用比例为1%,ST列表示进程状态,N表示该进程是前一个采样周期新生成的进程,E表示该进程已退出,EXC列指示进

6、程的退出码。从进程名在“”符号中,我们亦可知该进程已退出。内存视图(Memory consumption)内存视图展示了进程使用内存情况,按m键可进入内存视图。上图下半部分展示了每个进程占用的虚拟内存空间(VSIZE)、内存空间(RSIZE)大小,以及在上一个采样周期中虚拟内存和物理内存增长大小(VGROW、RGROW),MEM列指示进程所占物理内存大小。从上图的PAG列的信息,我们可以知道此时系统内存负载较高,出现页换出情况,从进程视图中VGROW和RGROW列可看出VirtualBox进程占用内存量大量增长,部分进程占用的内存减少(VGROW或RGROW字段为负值),为VirtualBox

7、进程腾出空间。命令视图(Command line)按c键我们可以进入命令视图,该视图展示了与每个进程相对应的命令。2. bonnie+ 1使用说明-d:在测试时会生成一些文件,并读或更改这些文件。这个参数是设置测试文件放置的路径。-s:单个测试文件的尺寸。这个参数值必须大于等于2倍测试使用的内存。测试时应该用大文件尺寸。-m:测试的机器名称-r:测试需要用多少内存。如果省略这个值,则会用全部的物理内存。-x:循环几次-u:指定执行测试的OS用户。当不是以root执行时,必须显式指定。-g 测试文件的组,默认是执行bonnie+的当前用组。-b 在每次写文件时调用fsync()函数,对于测试邮件

8、服务器或者数据库服务器这种通常需要同步操作的情况比较适合,而不使用该参数则比较适合测试copy文件或者编译等操作的效率。2结果分析下面看一个测试结果,通过这个结果我们解释一下到底bonnie+在测试过程中都作了什么,而每一个输出的结果又表示了什么。依次解读一下,从Writing with putc()开始到Delete files in random orde结束,这是bonnie+作的12项测试,这12项测试依次对应12项结果,而这12项结果又被分为了5大类,分别是Sequential Output(写测试),Sequential Input(读测试),Random Seeks(读写测试),

9、Sequential Create(顺序读写文件测试)和Random Create(随意读写文件测试)。那么测试步骤和测试结果依次对应的顺序就是:Writing with putc() - Sequential Output的Per ChrWriting intelligently - Sequential Output的BlockRewriting - Sequential Output的RewriteReading with getc() - Sequential Input的Per ChrReading intelligently - Sequential Input的Blockstar

10、t em - Random SeeksCreate files in sequential order - Sequential Create的CreateStat files in sequential order - Sequential Create的ReadDelete files in sequential order - Sequential Create的DeleteCreate files in random order - Random Create的CreateStat files in random order - Random Create的ReadDelete fil

11、es in random order - Random Create的Delete每个结果中又包括了2项数值,一个是K字节数或者文件数,另一个是%CP,就 是执行这项测试时CPU的平均占用率。对于输出结果的评价,我们认为在相等CPU的占用率情况下,存取字节数越高表示该存储设备的吞吐量越大,自然性能也就越好。Per Chr表示以字符为单位读写文件Block表示以block为单位读写文件Rewrite表示修改并重写已经存在的文件的每一个blockK/sec表示每秒读或写文件的速率,以K为单位%CP表示在某阶段执行操作时平均消耗的CPU可以看到,该机器的字符写速度可达8909K/sec,block写

12、速度可达20708K/sec,字符读速度可达27673K/sec,block读速度可达80684K/sec。3. Dbench TbenchDbench和Tbench是用来模拟工业标准的Netbench负载测试工具来评估文件服务器的测试工具。Dbench只产生文件系统的IO负载。-t 设置运行时间,以秒为单位。-D 测试运行的基本目录 测试时产生的一些文件存放位置,测试完毕后会自动把这些文件删除-c 负载文件的位置 Dbench和Tbench 都会读取一个负载描述文件client.txt,这个文件是安装程序自带的,通过读取它来产生负载。测试结果:从上图可看到模拟100个client同时运行10

13、秒的吞吐量68.9123MB/sec。Tbench产生TCP负载。运行Tbench之前首先要在服务器上面启动tbench_srv。测试结果:从上图可看到模拟100个client同时运行10秒的吞吐量117.434MB/sec。4. FdtreeFdtree是一个用来测试文件系统元数据性能的工具。参数含义:-C 只创建目录树-D 打开调试-R 只移除目录树-l 创建目录的递归等级,默认为4-d 每个等级所要创建的目录个数-f 每个目录下所要创建的文件个数-o 开始测试时的路径名-s 文件大小(是以block计算的,linux下block大小为4096Bytes),默认为10fdtree.bash

14、 d 1 l 2 f 10000 s 10000这个例子是一个文件压力的测试,创造的目录结构的等级为2,每个等级下创建1个目录,每个目录下文件的个数为10K,每个文件的大小为10000*4096Bytes=40.96MB,总的数据大小为2*10000*40.96MB=819.2GB。fdtree.bash -d 10000 -l 100这个例子是一个目录压力的测试,创造的目录结构的等级为100,每个等级下目录的个数为10K。第一等级下的总目录个数为10K,第二等级下的总目录总个数为10K*10K,第三等级下的总目录个数为10K*10K*10K,依次类推!上图显示了一个Fdtree的测试结果,目

15、录等级为4,每个等级下创建目录的个数为5,每个目录下文件的个数为3,文件大小为40KB。5. FfsbFfsb是一个文件系统性能测试工具,它通过读取可定制的profile文件来产生不同的工作负载,支持多个线程组访问多个不同的文件系统。下图内容是一个典型的profile文件的组成形式:profile文件由三部分组成:global options部分、filesystems部分、threadgroups部分.Global options:在profile文件的开始部分有8个全局变量,其中有三个是必须设置的:num_filesystems指定文件系统的个数,num_threadgroups指定线程组

16、的个数,time指定测试运行的时间。其余的5个变量是可选的,分别为:directio、alignio、bufferredi、verbose、callout: filesystems:对于ffsb来说文件系统就是一个目录,所以我们必须确保文件系统挂载到了相应的目录。在这里,我们可以设置文件系统中文件和目录的个数以及文件大小的最大值和最小值。由上图可知,文件系统的挂载位置为/mnt/leofs/,文件的数目为100,目录的数目为0,文件最大为B,文件最小为B。threadgroups:在这一部分指定了线程的个数,读写文件的大小和读写块的大小。如何详细的编写profile文件可参考ffsb软件包中的

17、README文件。Ffsb的运行方式:./ffsb profile文件的具体位置上图是一条ffsb命令的执行,开始时ffsb会把要执行的profile文件的主要内容列出到屏幕,如上图。运行结果见下图:由上图可知,创建100个40MB的文件共需要时间263s,吞吐量为245MB/s,CPU的利用率为84.6%。6. FstestFstest文件系统的一个测试工具。 参数含义:-n 设置子进程个数-f 设置文件数量-s 设置文件大小-b 设置块大小-p 设置测试路径-l 设置循环次数-S 使用同步IO7. Locktests用来测试文件控制锁的功能。一个主进程在一个文件域(字节范围锁)设置一把锁,

18、几个子进程设法在这个区域进行操作,比如:读、写、设置新琐等。-n 进程个数-f 在一个由-f定义的文件上进行测试-T 用线程代替进程测试结果: 每一次测试主进程都会上一把锁(读/写),子进程会在这锁部分执行以下操作:写、读、设置一个读锁、设置一个写锁。8. MdtestMdtest是一个测试文件系统元数据性能的工具。经常用到的一些参数的含义:-d 测试运行的目录-i 测试循环的次数-n 每个进程将要创建/统计/删除的目录和文件数目-w 文件创建以后写入多少bytes-p 循环前的时间延迟-D 只针对目录进行测试-F 只针对文件进行测试上图是一个mdtest的测试结果,测试参数为:测试运行的目录

19、为/mnt/leofs,创建/统计/删除的目录和文件数为2000,反复执行5次。从上图可看到目录创建每秒能够完成的操作数最大为492.270次,每秒能够完成的操作数平均为274.373次;文件创建每秒能够完成的操作数最大为1424.710次,每秒能够完成的操作数平均为1150.642次。9. MemtestMemtest是一款免费的内存测试软件,测试准确度比较高,内存的隐性问题也能检查出来.mem 测试内存的大小,all代表测试所有可用的内存runs 测试的次数-l or -log 保存测试日志到当前目录的memtest.log如上图,测试100MB的内存,执行一次,结果保存到当前目录的mem

20、test.log。Memtest一检测到缺陷位,就会在屏幕底部显示一条出错消息,但是测试还将继续下去。如果完成几遍测试后,没有任何错误信息,那么我们可以确定内存是稳定可靠的。如果你的系统有多根内存条,那么就需要单独测试每一根内存,这样才能分清到底是哪根内存出错。其实 Memtest测试内存并不仅仅局限在测试内存的好坏上,用它的完全测试模式跑几遍,还能检测内存和系统的稳定性。10. NetperfNetperf是一种网络性能的测量工具,主要针对基于TCP或UDP的传输。Netperf根据应用的不同,可以进行不同模式的网络性能测试,即批量数据传输(bulk data transfer)模式和请求/

21、应答(request/reponse)模式。Netperf测试结果所反映的是一个系统能够以多快的速度向另外一个系统发送数据,以及另外一个系统能够以多块的速度接收数据。Netperf工具以client/server方式工作。server端是netserver,用来侦听来自client端的连接,client端是netperf,用来向server发起网络测试。在client与server之间,首先建立一个控制连接,传递有关测试配置的信息,以及测试的结果;在控制连接建立并传递了测试配置信息以后,client与server之间会再建立一个测试连接,用来来回传递着特殊的流量模式,以测试网络的性能。TCP网

22、络性能:由于TCP协议能够提供端到端的可靠传输,因此被大量的网络应用程序使用。但是,可靠性的建立是要付出代价的。TCP协议保证可靠性的措施,如建立并维护连接、控制数据有序的传递等都会消耗一定的网络带宽。Netperf可以模拟三种不同的TCP流量模式:1) 单个TCP连接,批量(bulk)传输大量数据2) 单个TCP连接,client请求/server应答的交易(transaction)方式3) 多个TCP连接,每个连接中一对请求/应答的交易方式UDP网络性能:UDP没有建立连接的负担,但是UDP不能保证传输的可靠性,所以使用UDP的应用程序需要自行跟踪每个发出的分组,并重发丢失的分组。Netp

23、erf可以模拟两种UDP的流量模式:1) 从client到server的单向批量传输2) 请求/应答的交易方式由于UDP传输的不可靠性,在使用netperf时要确保发送的缓冲区大小不大于接收缓冲区大小,否则数据会丢失,netperf将给出错误的结果。因此,对于接收到分组的统计不一定准确,需要结合发送分组的统计综合得出结论。Netperf的命令行参数当netserver在server端启动以后,就可以在client端运行netperf来测试网络的性能。netperf通过命令行参数来控制测试的类型和具体的测试选项。根据作用范围的不同,netperf的命令行参数可以分为两大类:全局命令行参数、测试相

24、关的局部参数,两者之间使用-分隔:netperf global options- test-specific options 这里我们只解释那些常用的命令行参数: -H host :指定远端运行netserver的server IP地址。-l testlen:指定测试的时间长度(秒)-t testname:指定进行的测试类型,包括TCP_STREAM,UDP_STREAM,TCP_RR,TCP_CRR,UDP_RR,在下文中分别对它们说明。Netperf测试网络性能测试批量(bulk)网络流量的性能 批量数据传输典型的例子有ftp和其它类似的网络应用(即一次传输整个文件)。根据使用传输协议的不

25、同,批量数据传输又分为TCP批量传输和UDP批量传输。1 TCP_STREAMNetperf缺省情况下进行TCP批量传输,即-t TCP_STREAM。测试过程中,netperf向netserver发送批量的TCP数据分组,以确定数据传输过程中的吞吐量:从netperf的结果输出中,我们可以知道以下的一些信息:1) 远端系统(即server)使用大小为87380字节的socket接收缓冲2) 本地系统(即client)使用大小为16384字节的socket发送缓冲3) 向远端系统发送的测试分组大小为16384字节4) 测试经历的时间为60秒5) 吞吐量的测试结果为88Mbits/秒在缺省情况下

26、,netperf向发送的测试分组大小设置为本地系统所使用的socket发送缓冲大小。TCP_STREAM方式下与测试相关的局部参数如下表所示:参数说明-s size设置本地系统的socket发送与接收缓冲大小-S size设置远端系统的socket发送与接收缓冲大小-m size设置本地系统发送测试分组的大小-M size设置远端系统接收测试分组的大小-D对本地与远端系统的socket设置TCP_NODELAY选项11. IOR12. Iostatiostat的语法如下: 其中,-c仅显示CPU的状态;-d仅显示存储设备的状态,不可以与-c一起使用;-k预设显示的是block,这里可以改成为k

27、ilobytes的大小来显示;-t显示日期出来;-V表示打印出版本信息和用法;-x device指定要统计的设备名称,默认为所有的设备;interval指每次统计间隔的时间;count指按照这个时间间隔统计的次数。 tps:平均每秒钟的传送次数,与资料传送次数有关,非容量!Blk_read/s:开机到现在平均每秒的读取速度。Blk_wrtn/s:开机到现在平均每秒的写入速度。Blk_read:开机到现在总共读的数据量。Blk_wrtn:开机到现在总共写的数据量。上图的命令行含义为每2秒钟检测一次,共检测3次存储设备。rrqm/s: 每秒进行 merge 的读操作数目,即 delta(rmerg

28、e)/swrqm/s: 每秒进行 merge 的写操作数目,即 delta(wmerge)/sr/s: 每秒完成的读 I/O 设备次数,即 delta(rio)/sw/s: 每秒完成的写 I/O 设备次数,即 delta(wio)/srsec/s: 每秒读扇区数,即 delta(rsect)/swsec/s: 每秒写扇区数,即 delta(wsect)/srkB/s: 每秒读K字节数,是 rsect/s 的一半,因为每扇区大小为512字节。wkB/s: 每秒写K字节数,是 wsect/s 的一半。avgrq-sz: 平均每次设备I/O操作的数据大小(扇区),即 delta(rsect+wsec

29、t)/delta(rio+wio)。avgqu-sz: 平均I/O队列长度,即 delta(aveq)/s/1000 (因为aveq的单位为毫秒)。await: 平均每次设备I/O操作的等待时间 (毫秒),即 delta(ruse+wuse)/delta(rio+wio)。svctm: 平均每次设备I/O操作的服务时间 (毫秒),即 delta(use)/delta(rio+wio)util: 1秒中有百分之多少的时间用于 I/O 操作,或者说1秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为use的单位为毫秒)。如果 util 接近 100,说明产生的I/

30、O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。svctm 一般要小于 await (因为同时等待的请求的等待时间被重复计算了),svctm 的大小一般和磁盘性能有关,CPU/内存的负荷也会对其有影响,请求过多也会间接导致 svctm 的增加。await 的大小一般取决于服务时间(svctm) 以及 I/O 队列的长度和 I/O 请求的发出模式。如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;如果 await 远大于 svctm,说明 I/O 队列太长,应用得到的响应时间变慢,如果响应时间超过了用户可以容许的范围,这时可以考虑更换更快的磁盘,调整内核 elevat

31、or 算法,优化应用,或者升级 CPU。队列长度(avgqu-sz)也可作为衡量系统 I/O 负荷的指标,但由于 avgqu-sz 是按照单位时间的平均值,所以不能反映瞬间的 I/O 洪水。上图的命令行的参数含义为每1秒钟检测一次,共检测3次所有的设备。13. Iozoneiozone()是一个文件系统的benchmark工具,可以测试不同的操作系统中文件系统的读写性能。可以测试 Read, write, re-read, re-write, read backwards, read strided, fread, fwrite, random read, prea

32、d, mmap, aio_read, aio_write 等等不同的模式下的硬盘的性能。测试参数: -i # 用来指定测试内容,我们主要用到以下三种: 0=write/rewrite 1=read/re-read 2=random-read/write测试格式为-i #,比如测试写:-i 0,测试读和写:-i 0 -i 1。 -R 产生execl格式的输出日志 -b 将产生二进制的execl的日志文件名。-s 测试的文件大小-r 文件块大小-a 在希望的文件系统上测试,不过只有-a的话会进行全面测试,要花费很长时间,最好用-i指定测试范围。-g 指定最大测试文件大小 -n 指定最小测试文件大小

33、 -t 启动线程的个数-f 指定临时测试文件-F 指定临时测试文件组 -C 显示每个节点的吞吐量。 -c 测试包括文件的关闭时间-e 测试包括flush时间-w 测试结束后保留测试时产生的测试文件上图显示了一个iozone的测试结果的一部分,测试文件块的大小为1m,测试文件的大小2G,线程个数为5,会产生5个2G的临时测试文件,测试时产生的文件都存放在/mnt/leofs/下面,测试包括文件的关闭时间和flush时间,结果显示每个节点的吞吐量,测试结束后会保留测试时产生的测试文件,测试内容包含写/重写、读/重读,测试时产生的二进制日志会保存在result.xls中。5个进程总的写吞吐量为:.8

34、3 KB/sec.通常情况下,测试的文件大小要求至少是系统cache的两倍以上,这样,测试的结果才是真是可信的。如果小于cache的两倍,文件的读写测试读写的将是cache的速度,测试的结果大打折扣。14. SimulSimul是一个并行文件系统的测试工具,它可以同时模拟多个结点和进程来执行文件系统的操作来测试并行文件系统的准确性和一致性。主要参数含义:-d 测试将要运行的目录-f 开始测试时的测试编号(缺省为0)-l 最后测试时的测试编号(缺省为39)-i 测试过程中包含的测试编号-e 测试过程中不包括的测试编号-n每次测试重复的次数-N 所有的测试重复的次数 simul d /mnt/le

35、ofs f 13测试将从编号13开始,以后运行的测试的编号都大于13。simul d /mnt/leofs l 16测试将从编号0开始,以后运行的测试的编号不会大于16。simul d /mnt/leofs f 5 l 8测试将要运行编号5,6,7,8。simul d /mnt/leofs i 2,4,7,38测试仅仅执行编号为2,4,7,38的测试。所有可用的测试编号见下图:由上图可知,测试目录为/mnt/leofs/,测试执行的为5到20,测试结果为All test passed!15. large_file_test_toolslarge_file_test_tools是公司内部自己撰写

36、的测试工具,主要用作文件系统的正确性测试工具,此工具依赖pthread与MPI库,可用作单机和多机并发的正确性测试,此工具利用mpirun程序进程正确性测试,测试工具包括单线程和多线程的顺序读写、随机读写等一系列测试,主要有以下几个测试程序:序号工具名称功能1file_wr_pthread多线程顺序读写正确性测试2file_wr_pthread_nolock多线程顺序(无锁)读写正确性测试3file_wr_pthread_random多线程随机读写正确性测试4file_wr_pthread_nolock_random多线程随机(无锁)读写正确性测试主要参数含义:filelen:被测试的文件大小(如:100Kb、100Mb、1Gb)segment:每次读写的块大小(如:1Kb、1Mb)optype:程序运行模式(1:只写 2:只读 3:读/写)dosync:测试时是否采用sync模

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论