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 :

  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]:測試次數

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM