您好,登錄后才能下訂單哦!
最近著迷于性能測試,遂學習一把壓測神器sysbench
sysbench是github上開源的項目
鏈接地址:https://github.com/akopytov/sysbench
1.clone and download選擇copy URL
2.cd /tmp --> Centos終端輸入git clone https://github.com/akopytov/sysbench.git
3.按照README.MD中源碼安裝指導一步步操作即可。
yum -y install make automake libtool pkgconfig libaio-devel
yum -y install mariadb-devel
./autogen.sh
./configure
make -j
make install
關鍵詞:隨機產生數據,測試不同磁盤,在不同磁盤目錄下執行命令
準備階段:sysbench --test=fileio --num-threads=4 --file-total-size=10G --file-test-mode=rndrw prepare
壓力測試階段:sysbench --test=fileio --num-threads=4 --file-total-size=10G --file-test-mode=rndrw run
清理數據階段:sysbench --test=fileio --num-threads=4 --file-total-size=10G --file-test-mode=rndrw cleanup
TPS:Transactions Per Second,每秒傳輸的事務處理個數。這是指服務器每秒處理的事務數,是支持事務的存儲引擎特有的一個性能指標。
QPS:Queries Per Second,每秒查詢處理量,適用大多數存儲引擎。
tpmC:Transactions Per Minute,每分鐘處理的交易量,等同于TPS,是TPC-C的測試指標(tpcc-mysql)。
iops:每秒磁盤進行的I/O操作次數
iowait:一個采樣周期內有百分之幾的時間處于:CPU空閑、并且有仍未完成的I/O請求
svctm:設備處理請求的平均時間(ms)。指的是讀寫請求脫離linux內核調度,進入設備讀寫階段所耗時間。
%util:可以簡單的理解為:單位時間內,設備繁忙比。比如,10秒鐘,有6秒在進行讀寫,則util = 60%。
每秒I/O字節數(I/O吞吐)
事務響應時間
I/O設備提供的設備級別IOPS、讀寫延時數據
response time avg:平均響應時間
TPS and OPS
系統層面的cpu、io、mem相關指標
如果兩次tps/tpmC一樣,那么誰的事務響應時間、iowait、svctm、%util、讀寫延時更低,就是誰更好
sysbench /tmp/sysbench/src/lua/oltp_read_write.lua \
--mysql-host=127.0.0.1 --mysql-port=3306 \
--mysql-user=sysbench --mysql-password=sysbench \
--mysql-db=sbtest --tables=10 --table-size=100000 --threads=1 \
--report-interval=10 --rand-type=uniform --max-time=300 \
--max-requests=0 --percentile=99 prepare/run/cleanup
結果指定到文件:
run >>./log/sysbench_oltpX_20180313.log
參數解釋:
./src/lua/oltp_read_write.lua 表示調用本腳本進行oltp模式測試
--mysql-db=sbtest 表示指定測試庫
--tables=10 表示生成10個測試表
--table-size=100000 表示每個測試表填充數據量為100000
run模式的參數:
--threads=1 表示發起1個并發連接
--report-interval=10 表示每10秒輸出一次測試進度報告
--rand-type=uniform 表示隨機類型為固定模式
--max-time=300 表示最大執行時長300秒
--max-requests=0 表示總請求數為 0,因為上面已經定義了總執行時長,所以總請求數可以設定為 0;也可以只設定總請求數,不設定最大執行時長
--percentile=99 表示設定采樣比例,默認是 95%;即丟棄1%的長請求,在剩余的99%里取最大值
prepare:準備階段,準備數據
run:壓測執行
cleanup:壓測后馬上清理數據
每輪測試完成后,都重啟mysqld實例,并且用下面的方法刪除系統cache,釋放swap(如果用到了swap的話),甚至可以重啟整個OS
shell> sync --將臟數據刷新到磁盤
shell> echo 3 > /proc/sys/vm/drop_caches --清楚OS Cache
shell> swapoff -a && swapon -a
安裝windows客戶端,用于出圖
軟件:gp507-win64-mingw
下載url:https://jaist.dl.sourceforge.net/project/gnuplot/gnuplot/5.0.7/gp507-win64-mingw.exe
舉例:
plot 'C:\Users\limin\Downloads\20180314.log' using 7 with linespoint title 'vm1-TPS',
'C:\Users\limin\Downloads\20180314-10.log' using 7 with linespoint title 'vm2-TPS'
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。