Linux系统测试工具
一、文件系统测试工具简介
1、LTP
参考网站:http://oss.sgi.com/projects/ltp/
LTP(Linux Test Project)是由SGI和IBM联合发起的项目,提供一套验证Linux系统可靠性、健壮性、稳定性的测试套件,也可用来进行POSIX兼容测试和功 能性测试。LTP提供了2000多个测试工具,可以根据需要自行进行定制。同时,LTP还是一个优秀的自动化测试框架,基于它通过设计测试用例和测试工具 可以实现更多功能的测试自动化。
稳定性测试相关参考:
基于LTP《测试Linux的可靠性》http://www.ibm.com/developerworks/cn/linux/l-rel/
2、fstest
参考网站:http://www.tuxera.com/community/posix-test-suite/
fstest是一套简化版的文件系统POSIX兼容性测试套件,它可以工作在FreeBSD, Solaris, Linux上用于测试UFS, ZFS, ext3, XFS and the NTFS-3G等文件系统。fstest目前有3601个回归测试用例,测试的系统调用覆盖chmod, chown, link, mkdir, mkfifo, open, rename, rmdir, symlink, truncate, unlink。
该用例测试以上几个常用的文件系统调用,涉及用例约2K条左右,基于Android系统的测试,需要将相关测试用例的shell脚本稍微做下适配,可以基 于busybox下的相关命令(如dirname修改为busybox dirname),另外还需要适配主脚本“misc.sh”里面的相关命令
3、locktests
参考网站:http://nfsv4.bullopensource.org/tools/tests/locktest.php
locktest用于fcntl锁功能的压力测试。运行时,主进程先在指定文件区域设置字节范围的记录锁,然后多个从进程尝试在该文件区域执行read, write, 加新锁操作。这些操作结果是可预期的(矩阵如下),如果操作结果与预期一致则测试通过,否则测试失败。
Expected results
Here is the table of expected results, depending on :
- Slave test operations (READ, WRITE, SET A WRITE LOCK … )
- Master Operation (SET A READ LOCK, SET A WRITE LOCK )
- Slave types (Processes, threads)
- Locking profile (POSIX locking, Mandatory locking)
|
4、PCTS
参考网站:http://www.opengroup.org/testing/downloads.html
PCTS(Posix Complicance Testing Suite),POSIX一致性测试套件,是从POSIX标准出发,通过严格的、定量地测试,以验证、评价、认证操作系统符合POSIX标准的程序的测试 软件。IEEE std2003.1是PCTS的设计标准,常见的PCTS主要有VSX-PCTS、NIST-PCTS、OPTS-PCTS三种实现,上面提供的连接为 VSX-PCTS。
5、iozone
Iozone是目前应用非常广泛的文件系统测试标准工具,它能够产生并测量各种的操作性能,包括read, write, re-read, re-write, read backwards, read strided, fread, fwrite, random read, pread ,mmap, aio_read, aio_write等操作。Iozone目前已经被移植到各种体系结构计算机和操作系统上,广泛用于文件系统性能测试、分析与评估的标准工具。
6、Postmark
参考网站:http://openbenchmarking.org/test/pts/postmark
Postmark 是由著名的 NAS 提供商 NetApp 开发,用来测试其产品的后端存储性能。Postmark主要用于测试文件系统在邮件系统或电子商务系统中性能,这类应用的特点是:需要频繁、大量地存取小 文件。 Postmark 的测试原理是创建一个测试文件池。文件的数量和最大、最小长度可以设定,数据总量是一定的。创建完成后, Postmark 对文件池进行一系列的事务( transaction )操作,根据从实际应用中统计的结果,设定每一个事务包括一次创建或删除操作和一次读或添加操作,在有些情况下,文件系统的缓存策略可能对性能造成影响, Postmark 可以通过对创建 / 删除以及读 / 添加操作的比例进行修改来抵消这种影响。事务操作进行完毕后, Post 对文件池进行删除操作,并结束测试,输出结果。 Postmark是用随机数来产生所操作文件的序号,从而使测试更加贴近于现实应用。输出结果中比较重要的输出数据包括测试总时间、每秒钟平均完成的事务 数、在事务处理中平均每秒创建和删除的文件数,以及读和写的平均传输速度。
一、Postmark原理
Postmark是由着名的NAS提供商NetApp开发,用来测试其产品的后端存储性能。
Postmark主要用于测试文件系统在邮件系统或电子商务系统中性能,这类应用的特点是:需要频繁、大量地存取小文件。
Postmark的测试原理是创建一个测试文件池。文件的数量和最大、最小长度可以设定,数据总量是一定的。创建完成后,Postmark对文件池进行一 系列的事务(transaction)操作,根据从实际应用中统计的结果,设定每一个事务包括一次创建或删除操作和一次读或添加操作,在有些情况下,文件 系统的缓存策略可能对性能造成影响,Postmark可以通过对创建/删除以及读/添加操作的比例进行修改来抵消这种影响。事务操作进行完毕后,Post 对文件池进行删除操作,并结束测试,输出结果。
Postmark是用随机数来产生所操作文件的序号,从而使测试更加贴近于现实应用。
输出结果中比较重要的输出数据包括测试总时间、每秒钟平均完成的事务数、在事务处理中平均每秒创建和删除的文件数,以及读和写的平均传输速度。
二.Postmark的安装:
postmark软件只有一个.c文件,在gcc下编译即可。假定编译之后的可执行文件名为postmark。
7、fio
参考网站:http://freecode.com/projects/fio
fio是一个I/O标准测试和硬件压力验证工具,它支持13种不同类型的I/O引擎(sync, mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio等),I/O priorities (for newer Linux kernels), rate I/O, forked or threaded jobs等等。fio可以支持块设备和文件系统测试,广泛用于标准测试、QA、验证测试等,支持Linux, FreeBSD, NetBSD, OS X, OpenSolaris, AIX, HP-UX, Windows等操作系统。
8、filebench
参考网站:http://sourceforge.net/projects/filebench/
Filebench 是一款文件系统性能的自动化测试工具,它通过快速模拟真实应用服务器的负载来测试文件系统的性能。它不仅可以仿真文件系统微操作(如 copyfiles, createfiles, randomread, randomwrite ),而且可以仿真复杂的应用程序(如 varmail, fileserver, oltp, dss, webserver, webproxy )。 Filebench 比较适合用来测试文件服务器性能,但同时也是一款负载自动生成工具,也可用于文件系统的性能。
9、bonnie
参考网站:
http://sourceforge.net/projects/bonnie/
http://www.textuality.com/bonnie/
Bonnie++是一个用来测试UNIX文件系统性能的测试工具,主要目的是为了找出系统的性能瓶颈,其名字来源于作者喜爱的歌手Bonnie Raitt。
Bonnie++在类似的测试工具和软件中不是最大的和最复杂的,但是在易用性和输出结果显示方面很不错。
为什么需要bonnie++?
我们有以下假设:
内存是有限的,因此cache经常会达到上限;因此许多I/O操作最终需要真正执行I/O;因此有必要测试真实I/O的速度,而且在UNIX文件系统中随机搜索是非常慢的;
Bonnie++做了什么?
Bonnie++在一个已知文件大小的文件上执行一系列的测试操作。如果不指定文件大小,Bonnie++默认使用100MB。这个默认大小对于大型服务器来说可能不够大,因此文件的大小最好比可用RAM的大小大一点,一般会要求大两倍。
Bonnie++的使用说明
Bonnie++将长时间的执行磁盘文件读写操作(中间不断给出进程报告),然后生成一个小而精的报告。
下载Bonnie++的源码;
解压tar -xzf bonnie++-1.03e.tgz
进入解压后的目录
编译Bonnie++:make
至此,Bonnie++就已经安装,并可以使用了。
10、sysbench
sysbench提供了针对linux的基准测试能力,它支持测试CPU、内存、文件IO、信号量、线程等的能力,甚至包括mysql的基准测试。
安装:
# wget http://nchc.dl.sourceforge.net/project/sysbench/sysbench/0.4.12/sysbench-0.4.12.tar.gz
# tar zxvf sysbench-0.4.12.tar.gz -C ../software/
# ./configure --prefix=/usr/local/sysbench-0.4.12 \
--with-mysql-includes=/usr/local/mysql-5.5.8/include \
--with-mysql-libs=/usr/local/mysql-5.5.8/lib
# make
# make install
1. 基本指令
sysbench [common-options] --test=name [test-options] command
2. 测试文件IO负载
使用以下命令创建测试文件
sysbench --test=fileio --file-total-size=128G prepare
使用以下命令负载测试
sysbench --test=fileio --file-total-size=128G --file-test-mode=rndrw --max-time=60 --max-requests=0 run
测试完毕,使用以下命令清理测试文件
sysbench --test=fileio --file-total-size=128G cleanup
注意:
测试文件大小最好大于内存,确保文件缓存不会过多影响测试;
通过声明--file-test-mode选项,你可以告诉sysbench你想进行哪种类型的负载(顺序读写、随机读写、或者组合)。上面例子中指定了随机读写。
通过声明--max-time选项,你可以告诉sysbench你的测试时长。上面例子中指定了60秒。
3. 测试CPU负载
下面是一个验证最大素数的例子,通常用它来测试CPU
sysbench --test=cpu --cpu-max-prime=20000 --num-threads=2 run
4. 测试内存负载
执行以下命令:
sysbench --test=memory --num-threads=4 run
更多参数参见:SysBench manual
二、内存测试工具简介
1、memtester
参考网站:http://pyropus.ca/software/memtester/
memtester是用户态工具,用于测试内存子系统的故障。非常方便,支持32位或64位Unix-like系统。对于硬件开发开发者来说,memtester可以定位到物理地址。
1、安装
下载获取memtester-4.3.0.tar.gz源码包。
#tar –zxvf memtester-4.3.0.tar.gz
#make
#make install
2、测试
./memtester [-p physaddrbase] [B|K|M|G] [loops]
其中:
Physaddrbase:需要测试的物理地址;
<mem>[B|K|M|G]:测试内存的大小;
[loops]:测试次数
Linux系统测试工具的更多相关文章
- Linux文件系统测试工具
一.文件系统测试工具简介 1.LTP 参考网站:http://oss.sgi.com/projects/ltp/ LTP(Linux Test Project)是由SGI和IBM联合发起的项目,提供一 ...
- [转帖]linux操作系统测试工具
linux操作系统测试工具 http://cfdtesting.com/879156.html 作者: minions_222 来源: CFDTesting.com采编 发布于: ...
- inux操作系统测试工具
inux操作系统测试工具 转载minions_222 最后发布于2017-08-02 11:42:13 阅读数 1481 收藏 展开 转自:http://blog.csdn.net/crisscha ...
- Linux性能工具介绍
l Linux性能工具介绍 p CPU高 p 磁盘I/O p 网络 p 内存 p 应用程序跟踪 l 操作系统与应用程序的关系比喻为“唇亡齿寒”一点不为过 l 应用程序的性能问题/功能问 ...
- Linux 常用工具小结:(5) lftp工具使用
Linux 常用工具小结:(1) lftp工具使用. 这里会按照一些比较常用的功能列出,并举一个具体的例子逐一解释功能. 通常使用ftp过程是登陆ftp,浏览ftp内容,下载ftp文件,或者上传ftp ...
- linux shell工具集合
1)判断进程是否存在,如果不存在再执行启动命令,可以避免一个脚本同时启动多份 if [ $(ps -ef |grep bastion_account.sh|grep -v grep|wc -l) - ...
- Linux命令工具 top详解
Linux命令工具 top详解 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.top是一个动态显示过程,即可以通过用户按键来不 ...
- Linux命令工具基础04 磁盘管理
Linux命令工具基础04 磁盘管理 日程磁盘管理中,我们最常用的有查看当前磁盘使用情况,查看当前目录所占大小,以及打包压缩与解压缩: 查看磁盘空间 查看磁盘空间利用大小 df -h -h: huma ...
- linux vi 工具的使用
linux vi 工具的使用 1.打开文件 vi filename 如果存在该文件,则打开,不存在,则删除 2. 进入vi后,按i建,可以输入内容, 按ESC 在按: ,输入wq保存并退出. 3.移动 ...
随机推荐
- Python - 同时运行两个以上的脚本
在c.py中 import os os.system("python a.py") os.system("python b.py")
- spriteKit简单学习
https://shimo.im/docs/YejitfPrGkcNO3Ls/ <SpriteKit学习相关> 关于SpriteKit https://www.jianshu.com/ ...
- linux 添加与修改用户归属组
参考资源:https://cnzhx.net/blog/linux-add-user-to-group/ 一:已存在的用户 1.要以root进行登录 2.打开终端 3.修改分组 usermod -a ...
- PTA的Python练习题(五)
昨天耽搁了一天,今天继续 从 第3章-5 字符转换 开始 1. a=input() b="" for i in a: ': b=b+iprint(int(b))#(写成b=i+b ...
- 从零构建以太坊(Ethereum)智能合约到项目实战——第22章 玩转truffle framework 、Web3.js 框架
P84 .1-玩转truffle framework.Web3.js 框架 内容介绍 truffle官方网站:https://truffleframework.com/ P85 .2-truffle ...
- python字典中值为列表或字典的构造方式
1.值为列表的构造方法 dic = {} dic.setdefault(key,[]).append(value) >>dic.setdefault('a',[]).append(1) & ...
- 使用myeclipse搭建简单的maven工程
请点击或者复制以下链接 http://opiece.me/2016/03/17/maven-and-ssmframework/
- Linux centosVMware Linux监控平台介绍、zabbix监控介绍、安装zabbix、忘记Admin密码如何做
一.Linux监控平台介绍 cacti.nagios.zabbix.smokeping.open-falcon等等 cacti.smokeping偏向于基础监控,成图非常漂亮 cacti.nagios ...
- C/C++ — CreateThread 相关 API
使用互斥对象: #include <windows.h> #include <iostream> #define THREADCOUNT 6 HANDLE ghMutex; D ...
- Hibernate(九)--N+1问题
1.在利用Hibernate操作数据库的时候,如果在实体类上设置了表的双向关联.这可能会出现Hibernate N+1的问题. 1.1.一对多: 在一方,查找得到了 n 个对象,那么又需要将 n 个对 ...