中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行數據庫壓力測試工具tiobench,orion,lmbench,netperf的安裝及簡單使用

發布時間:2021-11-03 15:31:33 來源:億速云 閱讀:147 作者:柒染 欄目:建站服務器

這篇文章將為大家詳細講解有關如何進行數據庫壓力測試工具tiobench,orion,lmbench,netperf的安裝及簡單使用,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

1.          Tiobench 基于文件系統的IO壓力測試

下載:

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測試(對文件系統讀寫測試工具)可以使用以下命令取得幫助。

./tiotest -h

使用預定義或者可配置測試可以使用可以命令獲取幫助。

./tiobench.pl –help

執行可以如下:tiobench.pl其實只是包裝了一層,里面調用了tiotest

./tiobench.pl –block 4 –random 10000 –numruns 5 –threads 10 –size 2048

上面這句話的意思是:

1個塊大小為4字節 ,10個線程,執行10000個隨機IO,寫2048MB數據,共執行5次。

測試完之后可以看到產生的測試報告如下:

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

想知道各行分別代表什么含義,請執行:./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

發現一個讀IO只要0.004毫秒,非常快,這是因為IO是基于文件系統cache的,其實測試的是內存,并非文件系統。所以,可以使用下面一個工具來測試IO。

2.       使用Orion做基于裸設備的IO壓力測試

下載http://www.oracle.com/technetwork/topics/index-089595.html,需要一個OTN的免費帳號。

下載安裝之后,可以以下命令獲取幫助:

./orion_linux_x86-64 –help

為了避免文件系統cache,我們可以將需要測試的目錄先進行umount

如:我要測試的目錄為/data/對應的盤為/dev/sda8(映射關系保存在/etc/fstab中)

先執行:

umount /data

然后執行命令,命令執行完成后,再執行mount /data即可重新mount回來。

mount /data

測試如下:

2.1數據庫OLTP類型,假定IO類型全部是8K隨機操作,壓力類型,自動加壓,從小到大,一直到存儲壓力極限。讀寫比各為50%

2.2.1        測試8KB的塊,這個是數據庫塊大小

       創建一個文件名為zhoucang8k.lun的文件,內容為/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分別代表并發數
Large/Small1234503.554.184.775.355.941     2     
文件2:zhoucang8k_20110520_1757_iops.csvIOPS的能力,1,2,3,4,5分別代表并發數。
Large/Small1234502814786287478421     2     
文件3:zhoucang8k_20110520_1757_mbps.csv IO吞吐量,單位:MB/每秒
Large/Small01234512.14     23.72     

還有兩個文件trace文件內容較長,這里不貼了,另一個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

2.2.2   測試128KB的隨機IO,這個是db_file_multiblock_read_count的默認值。

       創建一個文件名為zhoucang128k.lun的文件,內容為/dev/sda8  

./orion_linux_x86-64 -run advanced -testname zhoucang128k -size_small 128 -size_large 128  -type rand -write 50 &

結果(見附件):

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

2.2.3        測試1MB的隨機IO,這個是操作系統上能夠支持的最大IO。

       創建一個文件名為zhoucang1024k.lun的文件,內容為/dev/sda8  

./orion_linux_x86-64 -run advanced -testname zhoucang1024k -size_small 1024-size_large 1024 –write 50 -type rand &

結果(見附件):

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

2.2 IO吞吐量的測試,跟數據庫歸檔等相關。

2.2.1        數據庫吞吐量測試,假定IO全部是1M的序列性IO

./orion_linux_x86-64 -run advanced -testname zhoucang1m -size_small 1024 -size_large 1024 –write 50 -type seq &

IOPS:

Large/Small12345
083110123129133

Lat:

Large/Small12345
011.9218.1224.3330.8637.56

整完之后,可能需要重新創建文件系統。因為/dev/sda8的label頭信息被覆蓋了。

/etc/fstab內容如下

LABEL=/data             /data                   ext3    defaults        1 2

執行以下命令創建文件系統。

mkfs -t ext3  /dev/sda8

/etc/fstab中加入:

/dev/sda8               /data                   ext3    defaults        1 2

mount -a

3           Lmbench 內存測試:

下載一個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的內存測試。(這個值越大,測試結果越準確,同時,值大,測試的時間也會稍稍有點長)

其它參數可以自選,這里我選擇了全部默認(調帶大小等參數),漫長的執行過程。。。。

測試完畢執行make see可得到以下四個文件,

在result目錄下:percent.errs  percent.out  summary.errs  summary.out
percent.errs和summary.errs

其它:具體如何使用這個工具呢?發現這個工具BIN目錄下有非常多的文件,功能很強大,具體可以參看這個鏈表上面有詳細的介紹:

http://www.bitmover.com/lmbench/man_lmbench.html

詳盡的測試結果見附件:

4           netperf針對網絡做壓力測試

這個工具是由HP公司開發的,測試網絡棧的一個工具,詳細的使用文檔可以參看附件。

從官方網下載一個netperf,登錄:

ftp://ftp.netperf.org/netperf/

拷貝文件:netperf-2.4.5.tar.gz

執行

Tar xzvf netperf-2.4.5.tar.gz

cd netperf-4.0.0rc2

Mkdir bin

./configure –prefix /root/zhoucang/netperf-2.4.5/bin

檢測安裝平臺的目標特征的,能夠直接linux下的makefile,

再執行make和make install

安裝完成之后,進入安裝目錄的 bin目錄。

執行以下命令可以查看幫助:

./netperf –help

4.1批量(bulk)網絡流量的性能

批量數據傳輸典型的例子有ftp和其它類似的網絡應用(即一次傳輸整個文件)。根據使用傳輸協議的不同,批量數據傳輸又分為TCP批量傳輸和UDP批量傳輸。

4.1.1        測試TCP_STREAM傳輸:

Netperf缺省情況下進行TCP批量傳輸,即-t TCP_STREAM。測試過程中,netperf向netserver發送批量的TCP數據分組,以確定數據傳輸過程中的吞吐量:

測試結果如下

[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的結果輸出中,我們可以知道以下的一些信息:

1) 遠端系統(即server)使用大小為87380字節的socket接收緩沖

2) 本地系統(即client)使用大小為16384字節的socket發送緩沖

3) 向遠端系統發送的測試分組大小為16384字節

4) 測試經歷的時間為60.03秒

5) 吞吐量的測試結果為949.29Mbits/秒

4.1.2        UDP_STREAM的測試

UDP_STREAM用來測試進行UDP批量傳輸時的網絡性能。需要特別注意的是,此時測試分組的大小不得大于socket的發送與接收緩沖大小,否則netperf會報出錯提示:

執行:./netperf -t UDP_STREAM -H 10.253.34.8 -l 60

執行結果如下:

[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方式的結果中有兩行測試數據,第一行顯示的是本地系統的發送統計,這里的吞吐量表示netperf向本地socket發送分組的能力。但是,我們知道,UDP是不可靠的傳輸協議,發送出去的分組數量不一定等于接收到的分組數量。

第二行顯示的就是遠端系統接收的情況,由于client與server直接連接在一起,而且網絡中沒有其它的流量,所以本地系統發送過去的分組幾乎都被遠端系統正確的接收了,遠端系統的吞吐量也幾乎等于本地系統的發送吞吐量。但是,在實際環境中,一般遠端系統的socket緩沖大小不同于本地系統的socket緩沖區大小,而且由于UDP協議的不可靠性,遠端系統的接收吞吐量要遠遠小于發送出去的吞吐量。

4.2 請求/應答(request/response)網絡流量的性能

另一類常見的網絡流量類型是應用在client/server結構中的request/response模式。在每次交易(transaction)中,client向server發出小的查詢分組,server接收到請求,經處理后返回大的結果數據。

4.2.1        TCP_RR

TCP_RR方式的測試對象是多次TCP request和response的交易過程,但是它們發生在同一個TCP連接中,這種模式常常出現在數據庫應用中。數據庫的client程序與server程序建立一個TCP連接以后,就在這個連接中傳送數據庫的多次交易過程。

[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輸出的結果也是由兩行組成。第一行顯示本地系統的情況,第二行顯示的是遠端系統的信息。平均的交易率(transaction rate)為11294.81次/秒。注意到這里每次交易中的request和response分組的大小都為1個字節,不具有很大的實際意義。用戶可以通過測試相關的參數來改變request和response分組的大小,TCP_RR方式下的參數如下表所示:

參數說明
-s size設置本地系統的socket發送與接收緩沖大小
-S size設置遠端系統的socket發送與接收緩沖大小
-r req,resp設置request和reponse分組的大小
-D對本地與遠端系統的socket設置TCP_NODELAY選項

通過使用-r參數,我們可以進行更有實際意義的測試:

#./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

從結果中可以看出,由于request/reponse分組的大小增加了,導致了交易率明顯的下降。注:相對于實際的系統,這里交易率的計算沒有充分考慮到交易過程中的應用程序處理時延,因此結果往往會高于實際情況。

4.2.2        TCP_CRR

與TCP_RR不同,TCP_CRR為每次交易建立一個新的TCP連接。最典型的應用就是HTTP,每次HTTP交易是在一條單獨的TCP連接中進行的。因此,由于需要不停地建立新的TCP連接,并且在交易結束后拆除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

即使是使用一個字節的request/response分組,交易率也明顯的降低了,只有4607.63次/秒。TCP_CRR使用與TCP_RR相同的局部參數。

4.2.3        UDP_RR

UDP_RR方式使用UDP分組進行request/response的交易過程。由于沒有TCP連接所帶來的負擔,所以我們推測交易率一定會有相應的提升。

[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

結果證實了我們的推測,交易率為11367.45次/秒,高過TCP_RR的數值。不過,如果出現了相反的結果,即交易率反而降低了,也不需要擔心,因為這說明了在網絡中,路由器或其它的網絡設備對UDP采用了與TCP不同的緩沖區空間和處理技術。

關于如何進行數據庫壓力測試工具tiobench,orion,lmbench,netperf的安裝及簡單使用就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

潞西市| 高淳县| 武山县| 防城港市| 安新县| 内黄县| 衢州市| 井冈山市| 和政县| 贵港市| 休宁县| 班玛县| 当阳市| 石台县| 聂拉木县| 洞头县| 色达县| 土默特右旗| 明溪县| 桑植县| 子长县| 原平市| 哈尔滨市| 马鞍山市| 富民县| 西乌| 镇原县| 澄迈县| 舒城县| 东台市| 通许县| 漳浦县| 当阳市| 扬州市| 临猗县| 左贡县| 黄梅县| 博兴县| 中阳县| 迭部县| 阿鲁科尔沁旗|