標籤:
曾經測試Linux系統下的分布式叢集系統的效能,使用了一些測試軟體,公司讓我給部門同事做一次基礎培訓,於是翻看以前所寫的記錄資料挑選了其中幾個,所記之處並不完全,只記錄使用的功能。
1.Iozone
iozone是一個檔案系統的benchmark工具,可以測試不同的作業系統中檔案系統的讀寫效能。
可以測試 Read, write, re-read, re-write, readbackwards, read strided, fread, fwrite, random read, pread, mmap, aio_read,aio_write 等等不同的模式下的硬碟的效能。
測試參數: -i # 用來指定測試內容,我主要用到以下兩種:
0=write/rewrite
1=read/re-read
例如測試寫:-i 0,測試讀和寫:-i 0 -i 1。
-R 產生execl格式的輸出日誌
-b 將產生二進位的execl的記錄檔名
-s 測試的檔案大小
-r 檔案塊大小
-a 在希望的檔案系統上測試,不過只有-a的話會進行全面測試,要花費很長時間,最好用-i指定測試範圍。
顯示了一個iozone的測試ext3本地檔案系統結果的一部分,測試檔案塊的大小為1m,測試檔案的大小4G,測試包括檔案的關閉時間和flush時間,測試內容包含寫/重寫、讀/重讀,測試時產生的二進位日誌會儲存在/home目錄下的test.xls中。
通常情況下,測試的檔案大小要求至少是系統cache的兩倍以上,這樣,測試的結果才是真是可信的。如果小於cache的兩倍,檔案的讀寫測試讀寫的將是cache的速度,測試的結果大打折扣。
2.Mdtest
Mdtest是一個測試檔案系統中繼資料效能的工具。
我們經常用到的一些參數的含義:
-d 測試回合的目錄
-i 測試迴圈的次數
-n 每個進程將要建立/統計/刪除的目錄和檔案數目
-w 檔案建立以後寫入多少bytes
-p 迴圈前的時間延遲
-D 只針對目錄進行測試
-F 只針對檔案進行測試
是一個mdtest的測試結果,測試參數為:測試回合的目錄為/mnt/aaa,建立/統計/刪除的目錄和檔案數為30000,反覆執行3次。
從可看到目錄建立每秒能夠完成的運算元最大為7016.495次,每秒能夠完成的運算元平均為6691.628次;檔案建立每秒能夠完成的運算元最大為63521.371次,每秒能夠完成的運算元平均為62325.578次。(因測試為本地檔案系統,故數值比較大)
3.Simul
Simul是一個並行檔案系統的測試載入器,它可以同時類比多個結點和進程來執行檔案系統的操作來測試並行檔案系統的準確性和一致性。
主要參數含義:
-d 測試將要啟動並執行目錄
-f 開始測試時的測試編號(預設為0)
-l 最後測試時的測試編號(預設為39)
-i 測試過程中包含的測試編號
-e 測試過程中不包括的測試編號
-n每次測試重複的次數
-N 所有的測試重複的次數
由可知,測試目錄為/mnt/aaa/,測試執行0到39的所有測試,測試結果為All test passed!
4.Fdtree
Fdtree是一個用來測試檔案系統中繼資料效能的工具,同時也可以用來進行壓力測試。
參數含義:
-C 只建立分類樹
-D 開啟調試
-R 只移除分類樹
-l 建立目錄的遞迴等級,預設為4
-d 每個等級所要建立的目錄個數
-f 每個目錄下所要建立的檔案個數
-o 開始測試時的路徑名
-s 檔案大小(是以block計算的,linux下block大小為4096Bytes),預設為10
fdtree.bash –d 1 –l 2 –f 10000 –s10000
這個例子是一個檔案壓力的測試,創造的目錄結構的等級為2,每個等級下建立1個目錄,每個目錄下檔案的個數為10K,每個檔案的大小為10000*4096Bytes=40.96MB,總的資料大小為2*10000*40.96MB=819.2GB。
fdtree.bash -d 10000 -l 100
這個例子是一個目錄壓力的測試,創造的目錄結構的等級為100,每個等級下目錄的個數為10K。第一等級下的總目錄個數為10K,第二等級下的總目錄總個數為10K*10K,第三等級下的總目錄個數為10K*10K*10K,依次類推!
顯示了一個Fdtree的測試結果,目錄等級為5,每個等級下建立目錄的個數為5,每個目錄下檔案的個數為5,檔案大小為40KB。
Linux檔案系統的幾個效能測試軟體小結