天天看點

sysbench、iostat測試伺服器的iops

1.對于一台安裝mysql資料庫的伺服器來說比較重要的資源就是iops(I/O per second)與記憶體,是以在安裝部署一台資料庫伺服器來說最好先測試一下該伺服器的iops性能,這裡使用sysbench測試。

2.sysbench的安裝與使用

下載下傳位址

https://github.com/akopytov/sysbench/releases

找到對應版本下載下傳

解壓tar包:

cd sysbench

./autogen.sh

./configure

make && make install

3.使用某一目錄生成測試檔案:

cd /data/test

sysbench --test=fileio --file-num=4 --file-block-size=8k --file-total-size=4G --file-test-mod=rndrd --file-extra-flags=direct --max-requests=0 --time=1200 --threads=4 prepare

--test=fileio ##測試伺服器的io性能,還可以測試記憶體,cpu等

--file-num=4 ##生成4個測試檔案

--file-block-size=8k ##檔案塊大小,這個值最好與mysql資料庫的innodb_page_size大小一緻

--file-total-size=4G ##4個檔案總大小

--file-test-mod=rndrd ##測試随機io讀性能,随機io寫為rndwr,一般隻用測試随機讀寫io,順序io性能不測試

--file-extra-flags=direct ##測試檔案寫入磁盤,跳過緩存,對應mysql中的參數innodb_flush_method=O_DIRECT,直接跳過先寫入檔案系統緩存,直接落盤。會影響mysql性能,但是可以提高資料安全性.

--max-requests=0##最多請求次數,0表示不限制

--time=1200 ##最大持續時間

--threads=4 ##處理線程數

prepare ##生成檔案,對應參數還有run開始測試,cleanup清理測試檔案

sysbench、iostat測試伺服器的iops

生成對應檔案後開始測試,使用run參數

3.開始測試磁盤随機讀性能

sysbench、iostat測試伺服器的iops

--report-interval=3 每3秒生成一次報告資訊

4.在運作sysbench時,通過iostat檢視磁盤資訊:

sysbench、iostat測試伺服器的iops

iostat -xm 3##每3秒重新整理一次資訊,xm擴充輸出資訊的機關為m/s

比較重要的值為r/s,w/s,%util這邊檢視到%util為100.說明磁盤基本滿載,達到性能上限.

5.檢視sysbench運作完成資訊并計算iops值。

sysbench、iostat測試伺服器的iops

在上面中,測試的是随機讀性能,可以通過這個參數計算出對于資料庫比較重要的iops值:

4.67X1024/8(file-block-size)=597 ##磁盤這就是每秒随機讀性能,屬于比較高的值,正常SSD磁盤基本在300iops,另外在正式環境中應該測試時間設定為一天或兩天測試出的值,才是比較準确的.

6.檢視伺服器磁盤排程算法:

sysbench、iostat測試伺服器的iops

這裡直接為deadline,無需修改。如果為 noop或cfq建議改為deadline. 修改方法echo deladline >/sys/block/xvde/queue/scheduler