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.移动 ...
随机推荐
- K8S-OVS使用Openvswitch为提供SDN功能支持单租户模式和多租户模式
k8s-ovs ============================== 最近在寻求一些工作机会,如果有kubernetes相关研发招聘的朋友,欢迎随时联系我.我的个人简历可以通过百度网盘:htt ...
- 微信小程序加密解密 C# 以及 填充无效,无法被移除错误的解决方案 Padding is invalid and cannot be removed
解密加密源码 using System; using System.Security.Cryptography; using System.Text; namespace Wechat { publi ...
- 将图片转化为base64编码字符串
pom依赖 <dependency> <groupId>org.ops4j.base</groupId> <artifactId>ops4j-base- ...
- Vue -> 解决 vue-ueditor-wrap 不能显示的问题
- eclipse问题集合
[eclipse更换jdk版本]
- JAVA项目开发之文档篇
转自链接:https://blog.csdn.net/Zonzereal/article/details/76704455
- Java 5 、6、 7中新特性
JDK5新特性(与1.4相比)[转] 1 循环 for (type variable : array){ body} for (type variable : arrayList){body} 而1. ...
- Spring之IOC、AOP和事务
IOC 什么是IOC?如果你回答:Spring是个IOC容器,实现原理是反射,没了.这样证明你没有真正理解IOC. IOC的意思是控制反转,还有个外号叫依赖注入(DI).为什么起这么晦涩难懂的名字呢? ...
- Rabbitmq概念用法
MQ全称为Message Queue, 是一种分布式应用程序的的通信方法,它是消费-生产者模型的一个典型的代表,producer往消息队列中不断写入消息,而另一端consumer则可以读取或者订阅队列 ...
- 使用c#调用API入门
使用C#调用windows API入门 一:入门,直接从 C# 调用 DLL 导出 其实我们的议题应该叫做C#如何直接调用非托管代码,通常有2种方法: 1. 直接调用从 DLL 导出的函数. 2 ...