您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關(guān)如何進行數(shù)據(jù)庫壓力測試工具tiobench,orion,lmbench,netperf的安裝及簡單使用,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
下載:
http://sourceforge.net/projects/tiobench/files/tiobench/0.3.3/tiobench-0.3.3.tar.gz/download
解壓縮: tar xzvf tiobench-0.3.3.tar.gz
再進入到tiobench-0.3.3目錄中
Make
Make install
IO測試(對文件系統(tǒng)讀寫測試工具)可以使用以下命令取得幫助。
./tiotest -h
使用預(yù)定義或者可配置測試可以使用可以命令獲取幫助。
./tiobench.pl –help
執(zhí)行可以如下:tiobench.pl其實只是包裝了一層,里面調(diào)用了tiotest
./tiobench.pl –block 4 –random 10000 –numruns 5 –threads 10 –size 2048
上面這句話的意思是:
1個塊大小為4字節(jié) ,10個線程,執(zhí)行10000個隨機IO,寫2048MB數(shù)據(jù),共執(zhí)行5次。
測試完之后可以看到產(chǎn)生的測試報告如下:
Unit information================ File size = megabytes Blk Size = bytes Rate = megabytes per second CPU% = percentage of CPU used during the test Latency = milliseconds Lat% = percent of requests that took longer than X seconds CPU Eff = Rate divided by CPU% – throughput per cpu load Sequential Reads 2.6.18-164.el5 1024 4 10 4.94 8210.% 0.004 7.27 0.00000 0.00000 0 Random Reads 2.6.18-164.el5 1024 4 10 4.64 7483.% 0.004 0.04 0.00000 0.00000 0 Sequential Writes 2.6.18-164.el5 1024 4 10 2.21 9521.% 0.015 11.56 0.00000 0.00000 0 Random Writes 2.6.18-164.el5 1024 4 10 0.02 98.51% 0.012 0.06 0.00000 0.00000 0 |
想知道各行分別代表什么含義,請執(zhí)行:./tiosum.pl可以得到各行的TIILE。感覺這個地方很山寨。
組裝一下就是:
Unit information================ File size = megabytes Blk Size = bytes Rate = megabytes per second CPU% = percentage of CPU used during the test Latency = milliseconds Lat% = percent of requests that took longer than X seconds CPU Eff = Rate divided by CPU% – throughput per cpu load Sequential Reads File Blk Num Avg Maximum Lat% Lat% CPU Kernel Size Size Thr Rate (CPU%) Latency Latency >2s >10s Eff —————————- —— —– — ———————————————————— 2.6.18-164.el5 1024 4 10 4.94 8210.% 0.004 7.27 0.00000 0.00000 0 Random Reads File Blk Num Avg Maximum Lat% Lat% CPU Kernel Size Size Thr Rate (CPU%) Latency Latency >2s >10s Eff —————————- —— —– — ———————————————————— 2.6.18-164.el5 1024 4 10 4.64 7483.% 0.004 0.04 0.00000 0.00000 0 Sequential Writes File Blk Num Avg Maximum Lat% Lat% CPU Kernel Size Size Thr Rate (CPU%) Latency Latency >2s >10s Eff —————————- —— —– — ———————————————————— 2.6.18-164.el5 1024 4 10 2.21 9521.% 0.015 11.56 0.00000 0.00000 0 Random Writes File Blk Num Avg Maximum Lat% Lat% CPU Kernel Size Size Thr Rate (CPU%) Latency Latency >2s >10s Eff —————————- —— —– — ———————————————————— 2.6.18-164.el5 1024 4 10 0.02 98.51% 0.012 0.06 0.00000 0.00000 0 |
發(fā)現(xiàn)一個讀IO只要0.004毫秒,非??欤@是因為IO是基于文件系統(tǒng)cache的,其實測試的是內(nèi)存,并非文件系統(tǒng)。所以,可以使用下面一個工具來測試IO。
下載http://www.oracle.com/technetwork/topics/index-089595.html,需要一個OTN的免費帳號。
下載安裝之后,可以以下命令獲取幫助:
./orion_linux_x86-64 –help
為了避免文件系統(tǒng)cache,我們可以將需要測試的目錄先進行umount
如:我要測試的目錄為/data/對應(yīng)的盤為/dev/sda8(映射關(guān)系保存在/etc/fstab中)
先執(zhí)行:
umount /data
然后執(zhí)行命令,命令執(zhí)行完成后,再執(zhí)行mount /data即可重新mount回來。
mount /data
測試如下:
創(chuàng)建一個文件名為zhoucang8k.lun的文件,內(nèi)容為/dev/sda8
./orion_linux_x86-64 -run advanced -testname zhoucang8k -size_small 8 -size_large 8 -type rand -write 50 &
這里能夠得到一些報告如下:
文件1:zhoucang8k_20110520_1757_lat.csv表示每個IO的延時,1,2,3,4,5分別代表并發(fā)數(shù) |
Large/Small1234503.554.184.775.355.941 2 |
文件2:zhoucang8k_20110520_1757_iops.csvIOPS的能力,1,2,3,4,5分別代表并發(fā)數(shù)。 |
Large/Small1234502814786287478421 2 |
文件3:zhoucang8k_20110520_1757_mbps.csv IO吞吐量,單位:MB/每秒 |
Large/Small01234512.14 23.72 |
還有兩個文件trace文件內(nèi)容較長,這里不貼了,另一個summary文件如下:
文件4:zhoucang8k_20110520_1757_summary.txt |
ORION VERSION 11.1.0.7.0Commandline: -run advanced -testname zhoucang8k -size_small 8 -size_large 8 -type rand -write 50 This maps to this test: Test: zhoucang8k Small IO size: 8 KB Large IO size: 8 KB IO Types: Small Random IOs, Large Random IOs Simulated Array Type: CONCAT Write: 50% Cache Size: Not Entered Duration for each Data Point: 60 seconds Small Columns:, 0 Large Columns:, 0, 1, 2 Total Data Points: 8 Name: /dev/sda8 Size: 1053115467264 1 FILEs found. Maximum Large MBPS=3.72 @ Small=0 and Large=2 Maximum Small IOPS=842 @ Small=5 and Large=0 Minimum Small Latency=3.55 @ Small=1 and Large=0 |
創(chuàng)建一個文件名為zhoucang128k.lun的文件,內(nèi)容為/dev/sda8
./orion_linux_x86-64 -run advanced -testname zhoucang128k -size_small 128 -size_large 128 -type rand -write 50 &
結(jié)果(見附件):
Maximum Large MBPS=29.11 @ Small=0 and Large=2
Maximum Small IOPS=311 @ Small=5 and Large=0
Minimum Small Latency=5.93 @ Small=1 and Large=0
創(chuàng)建一個文件名為zhoucang1024k.lun的文件,內(nèi)容為/dev/sda8
./orion_linux_x86-64 -run advanced -testname zhoucang1024k -size_small 1024-size_large 1024 –write 50 -type rand &
結(jié)果(見附件):
Maximum Large MBPS=109.76 @ Small=0 and Large=2
Maximum Small IOPS=135 @ Small=5 and Large=0
Minimum Small Latency=11.49 @ Small=1 and Large=0
./orion_linux_x86-64 -run advanced -testname zhoucang1m -size_small 1024 -size_large 1024 –write 50 -type seq &
IOPS:
Large/Small | 1 | 2 | 3 | 4 | 5 |
0 | 83 | 110 | 123 | 129 | 133 |
Lat:
Large/Small | 1 | 2 | 3 | 4 | 5 |
0 | 11.92 | 18.12 | 24.33 | 30.86 | 37.56 |
整完之后,可能需要重新創(chuàng)建文件系統(tǒng)。因為/dev/sda8的label頭信息被覆蓋了。
/etc/fstab內(nèi)容如下
LABEL=/data /data ext3 defaults 1 2
執(zhí)行以下命令創(chuàng)建文件系統(tǒng)。
mkfs -t ext3 /dev/sda8
/etc/fstab中加入:
/dev/sda8 /data ext3 defaults 1 2
mount -a
下載一個Lmbench:
www.bitmover.com/lmbench
http://www.bitmover.com/bitkeeper(里面的鏈接,打不開)
tar xzvf lmbench-3.0-a9.tgz
lmbench-3.0-a9
make results
輸入1000,大概1G的內(nèi)存測試。(這個值越大,測試結(jié)果越準確,同時,值大,測試的時間也會稍稍有點長)
其它參數(shù)可以自選,這里我選擇了全部默認(調(diào)帶大小等參數(shù)),漫長的執(zhí)行過程。。。。
測試完畢執(zhí)行make see可得到以下四個文件,
在result目錄下:percent.errs percent.out summary.errs summary.out
percent.errs和summary.errs
其它:具體如何使用這個工具呢?發(fā)現(xiàn)這個工具BIN目錄下有非常多的文件,功能很強大,具體可以參看這個鏈表上面有詳細的介紹:
http://www.bitmover.com/lmbench/man_lmbench.html
詳盡的測試結(jié)果見附件:
這個工具是由HP公司開發(fā)的,測試網(wǎng)絡(luò)棧的一個工具,詳細的使用文檔可以參看附件。
從官方網(wǎng)下載一個netperf,登錄:
ftp://ftp.netperf.org/netperf/
拷貝文件:netperf-2.4.5.tar.gz
執(zhí)行
Tar xzvf netperf-2.4.5.tar.gz
cd netperf-4.0.0rc2
Mkdir bin
./configure –prefix /root/zhoucang/netperf-2.4.5/bin
檢測安裝平臺的目標(biāo)特征的,能夠直接linux下的makefile,
再執(zhí)行make和make install
安裝完成之后,進入安裝目錄的 bin目錄。
執(zhí)行以下命令可以查看幫助:
./netperf –help
批量數(shù)據(jù)傳輸?shù)湫偷睦佑衒tp和其它類似的網(wǎng)絡(luò)應(yīng)用(即一次傳輸整個文件)。根據(jù)使用傳輸協(xié)議的不同,批量數(shù)據(jù)傳輸又分為TCP批量傳輸和UDP批量傳輸。
Netperf缺省情況下進行TCP批量傳輸,即-t TCP_STREAM。測試過程中,netperf向netserver發(fā)送批量的TCP數(shù)據(jù)分組,以確定數(shù)據(jù)傳輸過程中的吞吐量:
測試結(jié)果如下
[root@tstpay1 bin]# ./netperf -H 10.253.34.8 -l 60TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.253.34.8 (10.253.34.8) port 0 AF_INET Recv Send Send Socket Socket Message Elapsed Size Size Size Time Throughput bytes bytes bytes secs. 10^6bits/sec 87380 16384 16384 60.03 949.29 |
從netperf的結(jié)果輸出中,我們可以知道以下的一些信息:
1) 遠端系統(tǒng)(即server)使用大小為87380字節(jié)的socket接收緩沖
2) 本地系統(tǒng)(即client)使用大小為16384字節(jié)的socket發(fā)送緩沖
3) 向遠端系統(tǒng)發(fā)送的測試分組大小為16384字節(jié)
4) 測試經(jīng)歷的時間為60.03秒
5) 吞吐量的測試結(jié)果為949.29Mbits/秒
UDP_STREAM用來測試進行UDP批量傳輸時的網(wǎng)絡(luò)性能。需要特別注意的是,此時測試分組的大小不得大于socket的發(fā)送與接收緩沖大小,否則netperf會報出錯提示:
執(zhí)行:./netperf -t UDP_STREAM -H 10.253.34.8 -l 60
執(zhí)行結(jié)果如下:
[root@tstpay1 bin]# ./netperf -t UDP_STREAM -H 10.253.34.8 -l 60UDP UNIDIRECTIONAL SEND TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.253.34.8 (10.253.34.8) port 0 AF_INET Socket Message Elapsed Messages Size Size Time Okay Errors Throughput bytes bytes secs # # 10^6bits/sec 262144 65507 60.00 110099 0 961.62 129024 60.00 110098 961.61 |
UDP_STREAM方式的結(jié)果中有兩行測試數(shù)據(jù),第一行顯示的是本地系統(tǒng)的發(fā)送統(tǒng)計,這里的吞吐量表示netperf向本地socket發(fā)送分組的能力。但是,我們知道,UDP是不可靠的傳輸協(xié)議,發(fā)送出去的分組數(shù)量不一定等于接收到的分組數(shù)量。
第二行顯示的就是遠端系統(tǒng)接收的情況,由于client與server直接連接在一起,而且網(wǎng)絡(luò)中沒有其它的流量,所以本地系統(tǒng)發(fā)送過去的分組幾乎都被遠端系統(tǒng)正確的接收了,遠端系統(tǒng)的吞吐量也幾乎等于本地系統(tǒng)的發(fā)送吞吐量。但是,在實際環(huán)境中,一般遠端系統(tǒng)的socket緩沖大小不同于本地系統(tǒng)的socket緩沖區(qū)大小,而且由于UDP協(xié)議的不可靠性,遠端系統(tǒng)的接收吞吐量要遠遠小于發(fā)送出去的吞吐量。
另一類常見的網(wǎng)絡(luò)流量類型是應(yīng)用在client/server結(jié)構(gòu)中的request/response模式。在每次交易(transaction)中,client向server發(fā)出小的查詢分組,server接收到請求,經(jīng)處理后返回大的結(jié)果數(shù)據(jù)。
TCP_RR方式的測試對象是多次TCP request和response的交易過程,但是它們發(fā)生在同一個TCP連接中,這種模式常常出現(xiàn)在數(shù)據(jù)庫應(yīng)用中。數(shù)據(jù)庫的client程序與server程序建立一個TCP連接以后,就在這個連接中傳送數(shù)據(jù)庫的多次交易過程。
[root@tstpay1 bin]# ./netperf -t TCP_RR -H 10.253.34.8TCP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.253.34.8 (10.253.34.8) port 0 AF_INET Local /Remote Socket Size Request Resp. Elapsed Trans. Send Recv Size Size Time Rate bytes Bytes bytes bytes secs. per sec 16384 87380 1 1 10.00 11294.81 |
Netperf輸出的結(jié)果也是由兩行組成。第一行顯示本地系統(tǒng)的情況,第二行顯示的是遠端系統(tǒng)的信息。平均的交易率(transaction rate)為11294.81次/秒。注意到這里每次交易中的request和response分組的大小都為1個字節(jié),不具有很大的實際意義。用戶可以通過測試相關(guān)的參數(shù)來改變request和response分組的大小,TCP_RR方式下的參數(shù)如下表所示:
參數(shù) | 說明 |
-s size | 設(shè)置本地系統(tǒng)的socket發(fā)送與接收緩沖大小 |
-S size | 設(shè)置遠端系統(tǒng)的socket發(fā)送與接收緩沖大小 |
-r req,resp | 設(shè)置request和reponse分組的大小 |
-D | 對本地與遠端系統(tǒng)的socket設(shè)置TCP_NODELAY選項 |
通過使用-r參數(shù),我們可以進行更有實際意義的測試:
#./netperf -t TCP_RR -H 10.253.34.8 — -r 32,1024TCP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.253.34.8 (10.253.34.8) port 0 AF_INET Local /Remote Socket Size Request Resp. Elapsed Trans. Send Recv Size Size Time Rate bytes Bytes bytes bytes secs. per sec 16384 87380 32 1024 10.00 8955.26 16384 87380 |
從結(jié)果中可以看出,由于request/reponse分組的大小增加了,導(dǎo)致了交易率明顯的下降。注:相對于實際的系統(tǒng),這里交易率的計算沒有充分考慮到交易過程中的應(yīng)用程序處理時延,因此結(jié)果往往會高于實際情況。
與TCP_RR不同,TCP_CRR為每次交易建立一個新的TCP連接。最典型的應(yīng)用就是HTTP,每次HTTP交易是在一條單獨的TCP連接中進行的。因此,由于需要不停地建立新的TCP連接,并且在交易結(jié)束后拆除TCP連接,交易率一定會受到很大的影響。
[root@tstpay1 bin]# ./netperf -t TCP_CRR -H 10.253.34.8TCP Connect/Request/Response TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.253.34.8 (10.253.34.8) port 0 AF_INET Local /Remote Socket Size Request Resp. Elapsed Trans. Send Recv Size Size Time Rate bytes Bytes bytes bytes secs. per sec 16384 87380 1 1 10.00 4607.63 16384 87380 |
即使是使用一個字節(jié)的request/response分組,交易率也明顯的降低了,只有4607.63次/秒。TCP_CRR使用與TCP_RR相同的局部參數(shù)。
UDP_RR方式使用UDP分組進行request/response的交易過程。由于沒有TCP連接所帶來的負擔(dān),所以我們推測交易率一定會有相應(yīng)的提升。
[root@tstpay1 bin]# ./netperf -t UDP_RR -H 10.253.34.8UDP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.253.34.8 (10.253.34.8) port 0 AF_INET Local /Remote Socket Size Request Resp. Elapsed Trans. Send Recv Size Size Time Rate bytes Bytes bytes bytes secs. per sec 262144 262144 1 1 10.00 11367.45 129024 129024 |
結(jié)果證實了我們的推測,交易率為11367.45次/秒,高過TCP_RR的數(shù)值。不過,如果出現(xiàn)了相反的結(jié)果,即交易率反而降低了,也不需要擔(dān)心,因為這說明了在網(wǎng)絡(luò)中,路由器或其它的網(wǎng)絡(luò)設(shè)備對UDP采用了與TCP不同的緩沖區(qū)空間和處理技術(shù)。
關(guān)于如何進行數(shù)據(jù)庫壓力測試工具tiobench,orion,lmbench,netperf的安裝及簡單使用就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。