現(xiàn)有的測試工具分為三類:
- 合成IO測試
- 基準(zhǔn)測試集
- 基于Trace的測試
合成測試程序根據(jù)統(tǒng)計的真實負載發(fā)生規(guī)律,如請求的讀寫比例,大小,頻率和分布等信息。建立響應(yīng)的io存取模型。在測試時產(chǎn)生符合存取模型的io請求序列。發(fā)送給存儲系統(tǒng)。這類程序包括 IOMeter,IOZone 和 Bonnie++。
使用基準(zhǔn)測試集測試計算機系統(tǒng)的性能,一直是有效和精確的評價方法。針對存儲系統(tǒng)的測試研究也大量使用基準(zhǔn)測試集。
存儲性能委員會SPC,為存儲系統(tǒng)開發(fā)了基準(zhǔn)測試集。SPC-1 SPC-2; 標(biāo)準(zhǔn)性能評價組織SPEC 標(biāo)準(zhǔn)集成立于1988,目標(biāo)是建立標(biāo)準(zhǔn)和實際的性能測試集。其中 SFS是測量NFSv2和NFSv3服務(wù)器的性能,包括吞吐率和響應(yīng)時間。它在客戶端上運行實現(xiàn)定義的負載腳本產(chǎn)生各種實際的文件和目錄操作。https://www.spec.org/sfs2014/
Trace測試。Trace 測試是搜集真實系統(tǒng)中所有的IO請求信息,并按照一定格式記錄在Trace文件中,一般包括請求時間,請求類型和請求大小等。測試時,程序按照Trace文件中的記錄想存儲系統(tǒng)中發(fā)出IO請求。但是記錄Trace信息會增加IO開銷。
對于一個測試工具來說,需要滿足一下幾個基本要求:
一是對不同系統(tǒng)進行測試所得到的結(jié)果具有可比較性。
二是可移植性好,能夠適應(yīng)或者非常方便的移植到不同的機器上;
三是測試結(jié)果準(zhǔn)確客觀。
影響測試軟件網(wǎng)絡(luò)帶寬測試結(jié)果的關(guān)鍵因素有:讀寫操作比例,測試數(shù)據(jù)總大小,測試過程中每次操作的數(shù)據(jù)大小,順序或者隨機訪問模式,多個測試進程同時訪問一個文件還是訪問各自獨立的文件,或稱之為共享或者并發(fā)訪問模式。
參考文件:分布式文件系統(tǒng)性能測試軟件的設(shè)計 2012 第1期
常用的文件系統(tǒng)測試工具:
1. pjd-fstest (posix 接口兼容性測試)
參考網(wǎng)站:https://www.tuxera.com/community/posix-test-suite/
fstest是一套簡化版的文件系統(tǒng)POSIX兼容性測試套件,它可以工作在FreeBSD, Solaris, Linux上用于測試UFS, ZFS, ext3, XFS and the NTFS-3G等文件系統(tǒng)。fstest目前有3601個回歸測試用例,測試的系統(tǒng)調(diào)用覆蓋chmod, chown, link, mkdir, mkfifo, open, rename, rmdir, symlink, truncate, unlink。
使用教程:
https://www.cnblogs.com/xuyaowen/p/pjd-fstest.html
2. IOZone (讀寫模式測試)
磁盤設(shè)備之上是文件系統(tǒng),測試磁盤的工具往往就是調(diào)用塊設(shè)備驅(qū)動的接口進行讀寫測試。而文件系統(tǒng)的測試軟件就是針對文件系統(tǒng)層提供的功能進行測試,包括文件的打開關(guān)閉速度以及順序讀寫隨機位置讀寫的速度。以及進程并發(fā)數(shù)目等各個方面進行詳細的測試。
IOZone是目前應(yīng)用非常廣泛的文件系統(tǒng)測試標(biāo)準(zhǔn)工具,它能夠產(chǎn)生并測量各種的操作性能,包括read, write, re-read, re-write, read backwards, read strided, fread, fwrite, random read, pread ,mmap, aio_read, aio_write等操作。Iozone目前已經(jīng)被移植到各種體系結(jié)構(gòu)計算機和操作系統(tǒng)上,廣泛用于文件系統(tǒng)性能測試、分析與評估的標(biāo)準(zhǔn)工具。
IOZone和IOMeter不同,IOMeter的測試是基于數(shù)據(jù)塊的,而IOZome的測試是基于文件的,因此更適合用來測試文件系統(tǒng)的性能。使用IOZone 可以在多線程,多CPU,并指定CPU Cache 空間大小以及同步或者異步IO讀寫模式的情況下進行文件操作的性能測試。
使用教程:
https://www.cnblogs.com/xuyaowen/p/iozone.html
3. FIO (磁盤IO測試-順序IO和隨機IO)
參考網(wǎng)站:http://freshmeat.sourceforge.net/projects/fio
fio是一個I/O標(biāo)準(zhǔn)測試和硬件壓力驗證工具,它支持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可以支持塊設(shè)備和文件系統(tǒng)測試,廣泛用于標(biāo)準(zhǔn)測試、QA、驗證測試等,支持Linux, FreeBSD, NetBSD, OS X, OpenSolaris, AIX, HP-UX, Windows等操作系統(tǒng)。
使用教程:
https://www.cnblogs.com/xuyaowen/p/fio-usage.html
4. Filebench (文件系統(tǒng)應(yīng)用負載生成測試)
參考網(wǎng)站:https://sourceforge.net/projects/filebench/
Filebench 是一款文件系統(tǒng)性能的自動化測試工具,它通過快速模擬真實應(yīng)用服務(wù)器的負載來測試文件系統(tǒng)的性能。它不僅可以仿真文件系統(tǒng)微操作(如 copyfiles, createfiles, randomread, randomwrite ),而且可以仿真復(fù)雜的應(yīng)用程序(如 varmail, fileserver, oltp, dss, webserver, webproxy )。 Filebench 比較適合用來測試文件服務(wù)器性能,但同時也是一款負載自動生成工具,也可用于文件系統(tǒng)的性能。
使用教程:
https://www.cnblogs.com/xuyaowen/p/filebench.html
https://www.usenix.org/legacy/event/lsf08/tech/FS_shepler.pdf
http://www.nfsv4bat.org/Documents/nasconf/2005/mcdougall.pdf
5. Mdtest (元數(shù)據(jù)性能測試)
Mdtest 是一個測試文件系統(tǒng)元數(shù)據(jù)性能的工具。
使用教程:
https://www.cnblogs.com/xuyaowen/p/ior-and-mdtest.html
6. IOR (結(jié)合mpi,利用并行IO來測試文件系統(tǒng)的IO性能和元數(shù)據(jù)性能)
IOR使用MPI進行進程同步(也可以使用srun或其他工具) - 通常在HPC(High Performance Computing)集群中的多個節(jié)點上并行運行IOR進程,在安裝目標(biāo)文件系統(tǒng)的每個客戶機節(jié)點上運行一個IOR進程。
使用教程:
https://www.cnblogs.com/xuyaowen/p/ior-and-mdtest.html
7. dd測試工具 (磁盤IO測試-針對于順序IO)
使用 dd 來測試硬盤讀寫速度,dd 只能提供一個大概的測試結(jié)果,而且是連續(xù)IO不是隨機IO,理論上文件規(guī)模越大,測試結(jié)果就越精準(zhǔn)。
使用場景,適用在單節(jié)點進行測試。
使用教程:
https://www.cnblogs.com/xuyaowen/p/dd.html
8. Iperf (網(wǎng)絡(luò)測試,測試分布式存儲系統(tǒng)中網(wǎng)絡(luò)的實際帶寬,主要是對tcp/udp協(xié)議的測試)
Iperf 是一個網(wǎng)絡(luò)性能測試工具。IPerf可以測試最大的TCP和UDP帶寬性能。Iperf具有多種參數(shù)和特性,可以根據(jù)需要調(diào)整。IPerf可以報告帶寬。延遲抖動和數(shù)據(jù)包丟失。iperf3是一個網(wǎng)絡(luò)速度測試工具,支持IPv4與IPv6,支持TCP、UDP、SCTP傳輸協(xié)議,可在Windows、Mac OS X、Linux、FreeBSD等各種平臺使用,是一個簡單又實用的小工具。 本文介紹安裝、使用iperf3 網(wǎng)速測試工具。
使用教程:
https://www.cnblogs.com/xuyaowen/p/iperf-for-network.html
9. netperf (首先使用指定端口交換控制信息,再開另外的端口進行對tcp的stream,rr,crr和udp的stream,rr等應(yīng)用模式進行測試)
netperf是惠普公司開源的一款針對網(wǎng)絡(luò)性能的測試****工具,主要基于TCP或UDP的傳輸。根據(jù)應(yīng)用的不同,可以進行批量數(shù)據(jù)傳輸(bulk data transfer)模式和請求/應(yīng)答(request/reponse)模式的性能****測試。
netperf以Client/Server方式工作。Server端是netserver,用來偵聽來自client端的連接,Client端是netperf,用來向Server發(fā)起網(wǎng)絡(luò)測試。在Client與Server之間,首先建立一個控制連接,傳遞有關(guān)測試配置的信息,以及測試的結(jié)果;在控制連接建立并傳遞了測試配置信息以后,Client與Server之間會再建立一個測試連接,來回傳遞特殊的流量模式,用來測試網(wǎng)絡(luò)的性能。
netperf測試結(jié)果反映了一個系統(tǒng)能夠以多快的速度向另外一個系統(tǒng)發(fā)送數(shù)據(jù),以及另外一個系統(tǒng)能夠以多塊的速度接收數(shù)據(jù)。
使用教程:
https://www.cnblogs.com/xuyaowen/p/netperf.html
保持更新,轉(zhuǎn)載請注明出處:cnblogs.com/xuyaowen; 如果對您有幫助,請點擊推薦吧~