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清理測試檔案

生成對應檔案後開始測試,使用run參數
3.開始測試磁盤随機讀性能
--report-interval=3 每3秒生成一次報告資訊
4.在運作sysbench時,通過iostat檢視磁盤資訊:
iostat -xm 3##每3秒重新整理一次資訊,xm擴充輸出資訊的機關為m/s
比較重要的值為r/s,w/s,%util這邊檢視到%util為100.說明磁盤基本滿載,達到性能上限.
5.檢視sysbench運作完成資訊并計算iops值。
在上面中,測試的是随機讀性能,可以通過這個參數計算出對于資料庫比較重要的iops值:
4.67X1024/8(file-block-size)=597 ##磁盤這就是每秒随機讀性能,屬于比較高的值,正常SSD磁盤基本在300iops,另外在正式環境中應該測試時間設定為一天或兩天測試出的值,才是比較準确的.
6.檢視伺服器磁盤排程算法:
這裡直接為deadline,無需修改。如果為 noop或cfq建議改為deadline. 修改方法echo deladline >/sys/block/xvde/queue/scheduler