sysbench安裝、使用、結果解讀
sysbench是一個模組化的、跨平臺、多執行緒基準測試工具,主要用於評估測試各種不同系統引數下的資料庫負載情況。
目前sysbench程式碼託管在launchpad上,專案地址:https://launchpad.net/sysbench(原來的官網 http://sysbench.sourceforge.net 已經不可用),原始碼採用bazaar管理。
一、 下載原始碼包
安裝epel包後以便安裝bzr客戶端:
rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
然後就可以開始安裝bzr客戶端了:
yum install bzr
之後,就可以開始用bzr客戶端下載tpcc-mysql原始碼了。
cd /tmp bzr branch lp:sysbench
MySQL中文網便捷下載地址:
http://imysql.com/wp-content/uploads/2014/09/sysbench-0.4.12-1.1.tgz
sysbench支援以下幾種測試模式:
1、CPU運算效能 2、磁碟IO效能 3、排程程式效能 4、記憶體分配及傳輸速度 5、POSIX執行緒效能 6、資料庫效能(OLTP基準測試) 目前sysbench主要支援 mysql,drizzle,pgsql,oracle 等幾種資料庫。
二、編譯安裝
編譯非常簡單,可參考 README 文件,簡單步驟如下:
cd /tmp/sysbench-0.4.12-1.1 ./autogen.sh ./configure --with-mysql-includes=/usr/local/mysql/include --with-mysql-libs=/usr/local/mysql/lib && make # 如果 make 沒有報錯,就會在 sysbench 目錄下生成二進位制命令列工具 sysbench ls -l sysbench -rwxr-xr-x 1 root root 3293186 Sep 21 16:24 sysbench
三、OLTP測試前準備
初始化測試庫環境(總共10個測試表,每個表 100000 條記錄,填充隨機生成的資料):
cd /tmp/sysbench-0.4.12-1.1/sysbench mysqladmin create sbtest ./sysbench --mysql-host=1.2.3.4 --mysql-port=3317 --mysql-user=tpcc --mysql-password=tpcc \ --test=tests/db/oltp.lua --oltp_tables_count=10 --oltp-table-size=100000 --rand-init=on prepare
關於這幾個引數的解釋:
--test=tests/db/oltp.lua 表示呼叫 tests/db/oltp.lua 指令碼進行 oltp 模式測試 --oltp_tables_count=10 表示會生成 10 個測試表 --oltp-table-size=100000 表示每個測試表填充資料量為 100000 --rand-init=on 表示每個測試表都是用隨機資料來填充的
如果在本機,也可以使用 –mysql-socket 指定 socket 檔案來連線。載入測試資料時長視資料量而定,若過程比較久需要稍加耐心等待。
真實測試場景中,資料表建議不低於10個,單表資料量不低於500萬行,當然了,要視伺服器硬體配置而定。如果是配備了SSD或者PCIE SSD這種高IOPS裝置的話,則建議單表資料量最少不低於1億行。
四、進行OLTP測試
在上面初始化資料引數的基礎上,再增加一些引數,即可開始進行測試了:
./sysbench --mysql-host=1.2.3.4. --mysql-port=3306 --mysql-user=tpcc \ --mysql-password=tpcc --test=tests/db/oltp.lua --oltp_tables_count=10 \ --oltp-table-size=10000000 --num-threads=8 --oltp-read-only=off \ --report-interval=10 --rand-type=uniform --max-time=3600 \ --max-requests=0 --percentile=99 run >> ./log/sysbench_oltpX_8_20140921.log
幾個選項稍微解釋下
--num-threads=8 表示發起 8個併發連線 --oltp-read-only=off 表示不要進行只讀測試,也就是會採用讀寫混合模式測試 --report-interval=10 表示每10秒輸出一次測試進度報告 --rand-type=uniform 表示隨機型別為固定模式,其他幾個可選隨機模式:uniform(固定),gaussian(高斯),special(特定的),pareto(帕累託) --max-time=120 表示最大執行時長為 120秒 --max-requests=0 表示總請求數為 0,因為上面已經定義了總執行時長,所以總請求數可以設定為 0;也可以只設定總請求數,不設定最大執行時長 --percentile=99 表示設定取樣比例,預設是 95%,即丟棄1%的長請求,在剩餘的99%裡取最大值
即:模擬 對10個表併發OLTP測試,每個表1000萬行記錄,持續壓測時間為 1小時。
真實測試場景中,建議持續壓測時長不小於30分鐘,否則測試資料可能不具參考意義。
五、測試結果解讀:
測試結果解讀如下:
sysbench 0.5: multi-threaded system evaluation benchmark Running the test with following options: Number of threads: 8 Report intermediate results every 10 second(s) Random number generator seed is 0 and will be ignored Threads started! -- 每10秒鐘報告一次測試結果,tps、每秒讀、每秒寫、99%以上的響應時長統計 [ 10s] threads: 8, tps: 1111.51, reads/s: 15568.42, writes/s: 4446.13, response time: 9.95ms (99%) [ 20s] threads: 8, tps: 1121.90, reads/s: 15709.62, writes/s: 4487.80, response time: 9.78ms (99%) [ 30s] threads: 8, tps: 1120.00, reads/s: 15679.10, writes/s: 4480.20, response time: 9.84ms (99%) [ 40s] threads: 8, tps: 1114.20, reads/s: 15599.39, writes/s: 4456.30, response time: 9.90ms (99%) [ 50s] threads: 8, tps: 1114.00, reads/s: 15593.60, writes/s: 4456.70, response time: 9.84ms (99%) [ 60s] threads: 8, tps: 1119.30, reads/s: 15671.60, writes/s: 4476.50, response time: 9.99ms (99%) OLTP test statistics: queries performed: read: 938224 -- 讀總數 write: 268064 -- 寫總數 other: 134032 -- 其他操作總數(SELECT、INSERT、UPDATE、DELETE之外的操作,例如COMMIT等) total: 1340320 -- 全部總數 transactions: 67016 (1116.83 per sec.) -- 總事務數(每秒事務數) deadlocks: 0 (0.00 per sec.) -- 發生死鎖總數 read/write requests: 1206288 (20103.01 per sec.) -- 讀寫總數(每秒讀寫次數) other operations: 134032 (2233.67 per sec.) -- 其他操作總數(每秒其他操作次數) General statistics: -- 一些統計結果 total time: 60.0053s -- 總耗時 total number of events: 67016 -- 共發生多少事務數 total time taken by event execution: 479.8171s -- 所有事務耗時相加(不考慮並行因素) response time: -- 響應時長統計 min: 4.27ms -- 最小耗時 avg: 7.16ms -- 平均耗時 max: 13.80ms -- 最長耗時 approx. 99 percentile: 9.88ms -- 超過99%平均耗時 Threads fairness: events (avg/stddev): 8377.0000/44.33 execution time (avg/stddev): 59.9771/0.00
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22990797/viewspace-2146487/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- sysbench的安裝使用
- mysql ,tidb sysbench 測試結果記錄MySqlTiDB
- show engine innodb status 輸出結果解讀
- mysql之 sysbench1.0.3 安裝與系統壓力測試MySql
- Freebsd P怎麼安裝?Freebsd PF 安裝使用詳解
- 為了安裝alien,我更新了yum源,結果還是沒裝上
- 統一結果封裝封裝
- 關於Flutter iOS安裝包大小的解讀FlutteriOS
- 全面解讀App免填邀請碼安裝APP
- 黑蘋果安裝(傻瓜式輕鬆安裝)蘋果
- RowSet離線結果集物件的使用詳解物件
- ubuntu安裝vncserver,ubuntu安裝vncserver的使用教程,教程詳解UbuntuVNCServer
- FastQC結果詳解AST
- 蘋果系統安裝php環境的方法詳解蘋果PHP
- 黑蘋果安裝筆記蘋果筆記
- sysbench
- Docker的安裝配置及使用詳解Docker
- Intellij IDEA 安裝lombok及使用詳解IntelliJIdeaLombok
- Quartus安裝使用疑難及解決
- cocoapods安裝/解除安裝/使用
- anaconda的安裝和解除安裝及安裝完成後無法使用conda解決辦法
- 使用 Sysbench 進行 Linux 效能測試Linux
- 蘋果一體機安裝win10黑屏怎麼解決_蘋果一體機安裝win10黑屏如何修復蘋果Win10
- 新手怎樣安裝win10系統?win10系統安裝教程解讀Win10
- 圖文講解Godoc的安裝與使用Go
- sysbench for dm
- PAKDD 2019 AutoML3+競賽結果公佈,解讀冠軍團隊解決方案TOML
- JDK安裝方法、使用方法和層次結構JDK
- 記一次黑蘋果安裝蘋果
- 如何上傳蘋果ipa安裝包?蘋果
- 蘋果Mac電腦安裝Axure首次開啟報錯解決方案蘋果Mac
- 聯想小新Air 13安裝黑蘋果兼macOS Mojave安裝教程AI蘋果Mac
- JupyterLab安裝使用
- Nginx 安裝使用Nginx
- docker安裝使用Docker
- Anaconda 安裝、使用
- 安裝使用VUEVue
- kibana安裝使用
- tomcat安裝使用Tomcat