sysbench是開源的跨平臺多線程基準(zhǔn)測試工具,利用sysbench很容易對mysql做性能基準(zhǔn)測試,主要用于評估測試各種不同系統(tǒng)參數(shù)下的CPU、內(nèi)存、I/O和數(shù)據(jù)庫負(fù)載情況。目前sysbench主要支持 MySQL,pgsql,oracle 這3種數(shù)據(jù)庫。sysbench是一個模塊化的、跨平臺、多線程基準(zhǔn)測試工具,主要用于評估測試各種不同系統(tǒng)參數(shù)下的數(shù)據(jù)庫負(fù)載情況。
主要包括以下幾種方式的測試:
1、cpu性能
2、磁盤io性能
3、調(diào)度程序性能,互斥體性能
4、內(nèi)存分配及傳輸速度
5、POSIX線程性能
6、數(shù)據(jù)庫性能(OLTP基準(zhǔn)測試)
sysbench壓力測試工具使用:
2.1 測試數(shù)據(jù)庫服務(wù)器的硬件配置信息如下:
CPU: 24核心線程數(shù),Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz
MEM: 64G,8*8G=64G
DISK: 15000轉(zhuǎn)/秒
2.2 對磁盤IO性能的測試:
2.2.1 創(chuàng)建fileio文件
創(chuàng)建初始化fileio文件:
[root@db-master sysbench]# sysbench --test=fileio --file-num=16 --file-total-size=2G prepare
sysbench 0.4.12: multi-threaded system evaluation benchmark
16 files, 131072Kb each, 2048Mb total
Creating files for the test...
2.2.1 開始fileio測試
接下來開始對這些文件進(jìn)行測試,使用16個線程隨機(jī)讀進(jìn)行測試結(jié)果如下:
[root@db-master sysbench]# sysbench --test=fileio --file-total-size=2G --file-test-mode=rndrd --max-time=180 --max-requests=100000000 --num-threads=16 --init-rng=on --file-num=16 --file-extra-flags=direct --file-fsync-freq=0 --file-block-size=16384 run
可以看到隨機(jī)讀取的性能為75.988Mb/sec,隨機(jī)讀的IOPS為4863.25 Requests/sec.說明服務(wù)器的硬件配置還不錯。
2.2.3 測試完成執(zhí)行cleanup
測試結(jié)束后,記得執(zhí)行cleanup,以確保測試所產(chǎn)生的文件都已刪除:
[root@db-master sysbench]# sysbench --test=fileio --file-num=16 --file-total-size=2G cleanup
sysbench 0.4.12: multi-threaded system evaluation benchmark
Removing test files...
如果需要測試seqwr(順序?qū)?, seqrewr(順序讀寫), seqrd(順序讀), rndrd(隨機(jī)讀), rndwr(隨機(jī)寫), rndrw(隨機(jī)讀寫)等6種模式,并且還可能需要測試不同的線程和不同的文件塊下磁盤的性能表現(xiàn),這時,可以使用如下腳本達(dá)到測試目的。