(2.7)压力测试(自动化)
分布式文件系统的负载能力总是存在上限的,当系统过载时,系统就有可能出现性能下降、功能异常、拒绝访问等问题。压力测试就是要验证系统在大压力下,包括数据多客户端、高OPS压力、高IOPS/吞吐量压力,系统是否仍然能够正常运行、功能是否正常、系统资源消耗情况,从而为生产运营提供依据。压力测试采用自动化方式进行,使用LTP、Iozone、 Postmark、fio对系统进行持续增加压力,同时使用功能测试方法验证功能正确性,并采用top, iostat, sar, ganglia等工具对系统资源进行监控。
(2.8)性能测试(自动化)
性能是评估一个分布式文件系统的最为关键的维度,根据文件系统在不同场景下的性能表现,可以判断文件系统是否适合特定的应用场景,并为系统性能调优提供依据。文件系统性能主要包括IOPS、OPS、吞吐量三个指标,分别表示小文件、元数据、大数据的处理能力。性能测试采用自动化方式进行,测试系统在不同负载情况下的性能,主要包括小文件、大文件、海量目录、email server、fileserver、videoserver、webserver等应用下的OPS、IOPS、吞吐量,产生IO负载的工具可采用 Iozone、Postmark、Fio、filebench等。
文件系统测试工具简介
(1) LTP (http://ltp.sourceforge.net/)
LTP(Linux Test Project)是由SGI和IBM联合发起的项目,提供一套验证Linux系统可靠性、健壮性、稳定性的测试套件,也可用来进行POSIX兼容测试和功能性测试。LTP提供了2000多个测试工具,可以根据需要自行进行定制。同时,LTP还是一个优秀的自动化测试框架,基于它通过设计测试用例和测试工具可以实现更多功能的测试自动化。
(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。
(3) locktests (http://nfsv4.bullopensource.org/tools/tests/locktest.php)
locktest用于fcntl锁功能的压力测试。运行时,主进程先在指定文件区域设置字节范围的记录锁,然后多个从进程尝试在该文件区域执行read, write, 加新锁操作。这些操作结果是可预期的(矩阵如下),如果操作结果与预期一致则测试通过,否则测试失败。
(4) PCTS (http://www.opengroup.org/testing/linux-test/lsb-vsx.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://www.gtlib.cc.gatech.edu/pub/debian/pool/main/p/postmark/)
Postmark 是由著名的 NAS 提供商 NetApp 开发,用来测试其产品的后端存储性能。Postmark主要用于测试文件系统在邮件系统或电子商务系统中性能,这类应用的特点是:需要频繁、大量地存取小文件。 Postmark 的测试原理是创建一个测试文件池。文件的数量和最大、最小长度可以设定,数据总量是一定的。创建完成后, Postmark 对文件池进行一系列的事务( transaction )操作,根据从实际应用中统计的结果,设定每一个事务包括一次创建或删除操作和一次读或添加操作,在有些情况下,文件系统的缓存策略可能对性能造成影响, Postmark 可以通过对创建 / 删除以及读 / 添加操作的比例进行修改来抵消这种影响。事务操作进行完毕后, Post 对文件池进行删除操作,并结束测试,输出结果。 Postmark是用随机数来产生所操作文件的序号,从而使测试更加贴近于现实应用。输出结果中比较重要的输出数据包括测试总时间、每秒钟平均完成的事务数、在事务处理中平均每秒创建和删除的文件数,以及读和写的平均传输速度。
原文转自:http://www.uml.org.cn/Test/201212104.asp