一、文件系统测试工具简介

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 :

  1. Slave test operations (READ, WRITE, SET A WRITE LOCK … )
  2. Master Operation (SET A READ LOCK, SET A WRITE LOCK )
  3. Slave types (Processes, threads)
  4. Locking profile (POSIX locking, Mandatory locking)
     

Master

   

Slave type

Test operation

advisory

locking 

  mandatory

locking 

   

read lock 

write lock 

read lock 

write lock 

thread

set a read lock

Allowed

Allowed

Allowed

Allowed

 

set a write lock

Allowed

Allowed

Allowed

Allowed

 

read

Allowed

Allowed

Allowed

Allowed

 

write

Allowed

Allowed

Allowed

Allowed

process

set a read lock

Allowed

Denied

Allowed

Denied

 

set a write lock

Denied

Denied

Denied

Denied

 

read

Allowed

Allowed

Denied

Allowed

 

write

Allowed

Allowed

Denied

Denied

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

参考网站:http://www.iozone.org/

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系统测试工具的更多相关文章

  1. Linux文件系统测试工具

    一.文件系统测试工具简介 1.LTP 参考网站:http://oss.sgi.com/projects/ltp/ LTP(Linux Test Project)是由SGI和IBM联合发起的项目,提供一 ...

  2. [转帖]linux操作系统测试工具

    linux操作系统测试工具 http://cfdtesting.com/879156.html 作者: minions_222      来源: CFDTesting.com采编      发布于:  ...

  3. inux操作系统测试工具

    inux操作系统测试工具 转载minions_222 最后发布于2017-08-02 11:42:13 阅读数 1481  收藏 展开 转自:http://blog.csdn.net/crisscha ...

  4. Linux性能工具介绍

    l  Linux性能工具介绍 p  CPU高 p  磁盘I/O p  网络 p  内存 p  应用程序跟踪 l  操作系统与应用程序的关系比喻为“唇亡齿寒”一点不为过 l  应用程序的性能问题/功能问 ...

  5. Linux 常用工具小结:(5) lftp工具使用

    Linux 常用工具小结:(1) lftp工具使用. 这里会按照一些比较常用的功能列出,并举一个具体的例子逐一解释功能. 通常使用ftp过程是登陆ftp,浏览ftp内容,下载ftp文件,或者上传ftp ...

  6. linux shell工具集合

    1)判断进程是否存在,如果不存在再执行启动命令,可以避免一个脚本同时启动多份 if [ $(ps -ef |grep  bastion_account.sh|grep -v grep|wc -l) - ...

  7. Linux命令工具 top详解

    Linux命令工具 top详解 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.top是一个动态显示过程,即可以通过用户按键来不 ...

  8. Linux命令工具基础04 磁盘管理

    Linux命令工具基础04 磁盘管理 日程磁盘管理中,我们最常用的有查看当前磁盘使用情况,查看当前目录所占大小,以及打包压缩与解压缩: 查看磁盘空间 查看磁盘空间利用大小 df -h -h: huma ...

  9. linux vi 工具的使用

    linux vi 工具的使用 1.打开文件 vi filename 如果存在该文件,则打开,不存在,则删除 2. 进入vi后,按i建,可以输入内容, 按ESC 在按: ,输入wq保存并退出. 3.移动 ...

随机推荐

  1. kafka2x-Elasticsearch 数据同步工具demo

    Bboss is a good elasticsearch Java rest client. It operates and accesses elasticsearch in a way simi ...

  2. Python 爬取 热词并进行分类数据分析-[简单准备] (2020年寒假小目标05)

    日期:2020.01.27 博客期:135 星期一 [本博客的代码如若要使用,请在下方评论区留言,之后再用(就是跟我说一声)] 所有相关跳转: a.[简单准备](本期博客) b.[云图制作+数据导入] ...

  3. 关于TXT文件中英文字母出现频率排序问题

    题目要求: 输出某个英文文本文件中 26 字母出现的频率,由高到低排列,并显示字母出现的百分比,精确到小数点后面两位. 源码: package demo; import java.io.File;  ...

  4. 入门项目数字手写体识别:使用Keras完成CNN模型搭建(重要)

    摘要: 本文是通过Keras实现深度学习入门项目——数字手写体识别,整个流程介绍比较详细,适合初学者上手实践. 对于图像分类任务而言,卷积神经网络(CNN)是目前最优的网络结构,没有之一.在面部识别. ...

  5. 820复试算法 快排找第 k 小

    done {20-01-30 12:56} ref: https://blog.csdn.net/fengsigaoju/article/details/50728588 note: void qui ...

  6. Using Watch Mode

    官方文档地址:https://webpack.js.org/guides/development/#using-watch-mode You can instruct webpack to " ...

  7. 143、Java内部类之访问方法中定义的参数或变量

    01.代码如下: package TIANPAN; class Outer { // 外部类 private String msg = "Hello World !"; publi ...

  8. 数组NSArray与NSMutableArray的常用方法

    数组中可以放任何类型的数据,并且一个数组中的元素类型可以不一致.只要是(id类型)对象. NSArray 1.初始化 NSArray *array = @[]; 2.初始化,最后需要以nil结尾 NS ...

  9. 认识iOS系统架构

    关于本文: 文章主要介绍iOS系统架构中的四层结构的内容.常用的框架.大致的功能,然后对iOS开发人员的发展提出自己的一些拙见. 一.iOS系统是基于UNIX系统,所有从系统稳定性上来说的确比其他操作 ...

  10. Rabbitmq概念用法

    MQ全称为Message Queue, 是一种分布式应用程序的的通信方法,它是消费-生产者模型的一个典型的代表,producer往消息队列中不断写入消息,而另一端consumer则可以读取或者订阅队列 ...