MySQL性能壓力基准測試工具sysbench


1、sysbench介紹

這里介紹一款MySQL數據庫的壓力測試軟件sysbench,用它來進行基准測試。

sysbench 是一個開源的、模塊化的、跨平台的多線程性能測試工具,

可以用來進行CPU、內存、磁盤I/O、線程、數據庫的性能測試。

目前支持的數據庫有MySQL、Oracle 和PostgreSQL。

#項目下載地址:
 
該基准套件的想法是快速獲得有關系統性能的印象,而無需設置復雜的數據庫基准,甚至不需要安裝數據庫。
當前功能允許測試以下系統參數:
  • #CPU性能
  • file I/O performance #文件IO性能,磁盤IO性能
  • scheduler performance #調度程序性能
  • memory allocation and transfer speed #內存分配和傳輸速度
  • POSIX threads implementation performance #POSIX線程實現性能
  • database server performance (OLTP benchmark) #數據庫服務器性能(OLTP基准)
Sysbench的oltp主要用於評估測試各種不同系統參數下的數據庫負載情況。
相比0.4版本,后續的版本oltp測試主要結合了lua腳本,不需要修改源碼,通過自定義lua腳本就可以實現不同業務類型的測試。
 
SysBench的缺點:
模擬的表結構太簡單,不像tpcc-mysql那樣完整的事務系統,但對於MySQL性能壓測對比還是很有用的。
 

2、sysbench安裝過程

#安裝相關依賴
mount /dev/cdrom /mnt yum -y install make automake libtool pkgconfig libaio-devel libtool
#安裝過程開始
#客戶端lib包做個鏈接
ln -sf /mysql/app/mysql/lib/libmysqlclient.so.20 /usr/lib/libmysqlclient.so.20
#解壓安裝
cd /soft
tar zxvf sysbench-1.0.15.tar.gz
cd sysbench-1.0.15
./autogen.sh ./configure --prefix=/mysql/app/sysbench --with-mysql=/mysql/app/mysql --with-mysql-includes=/mysql/app/mysql/include/ #--with-mysql-libs=/usr/lib/ make && make install #配置環境變量 vi ~/.bash_profile PATH=$PATH:/mysql/app/sysbench/bin:$HOME/bin source ~/.bash_profile sysbench --version #如果提示報錯 sysbench: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory #接着在/etc/ld.so.cnf中加入/usr/lib這一行 [root@tse01 local]# cat /etc/ld.so.conf include ld.so.conf.d/*.conf /usr/lib/ #執行ldconfig -v更新下配置就可以了 [root@tse01 local]# /sbin/ldconfig -v
 
        
#提示說明:

如果你在非標准位置安裝的MySQL頭文件和庫(沒有 mysql_config可以在找到PATH),

你可以明確指定--with-mysql-includes--with-mysql-libs選項參數,如上面。

要在沒有MySQL支持的情況下編譯sysbench,請使用--without-mysql
如果沒有可用的數據庫驅動程序,則與數據庫相關的腳本將不起作用,但其他基准測試將起作用。
 
#常規命令行選項
下表列出了受支持的常用選項,它們的描述和默認值:
選項
描述
默認值
--threads
要創建的工作線程總數
1個
--events
要求總數的限制。0(默認值)表示沒有限制
0
--time
總執行時間限制(以秒為單位)。0表示沒有限制
10
--warmup-time
在啟用統計信息的情況下運行實際基准測試之前,在禁用統計信息的情況下執行事件數秒鍾。當您要從統計信息中排除基准測試運行的初始期間時,此功能很有用。在許多基准測試中,初始階段並不具有代表性,因為CPU /數據庫/頁面和其他緩存需要一些時間進行預熱
0
--rate
平均交易率。該數字指定所有線程平均每秒應執行多少事件(事務)。0(默認)表示無限制速率,即事件以盡可能快的速度執行
0
--thread-init-timeout
輔助線程初始化的等待時間(以秒為單位)
30
--thread-stack-size
每個線程的堆棧大小
32K
--report-interval
定期以指定的時間間隔(以秒為單位)報告中間統計信息。請注意,此選項生成的統計信息是按時間間隔而不是累積的。0禁用中間報告
0
--debug
打印更多調試信息
離開
--validate
盡可能驗證測試結果
離開
--help
根據常規語法或指定的測試打印幫助,然后退出
離開
--verbosity
詳細級別(0-僅關鍵消息,5-調試)
4
--percentile
sysbench測量所有已處理請求的執行時間,以顯示統計信息,例如最小,平均和最大執行時間。對於大多數基准測試,了解與某個百分位數相匹配的請求執行時間值也很有用(例如,95%百分位數意味着我們應該丟棄最長請求的5%,並從其余請求中選擇最大值)。此選項允許指定要計算的查詢執行時間的百分等級
95
--luajit-cmd
執行LuaJIT控制命令。此選項等效於luajit -j。有關更多信息,請參見 LuaJIT文檔
 
請注意,可以通過附加相應的乘法后綴(K表示千字節,M表示兆字節,G表示千兆字節,T表示兆字節)
來指定所有大小選項(--thread-stack-size如此表中所示)的數值。
 
#sysbench使用[command]常用的有:
1) prepare准備測試,生成數據
2) run執行測試
3) cleanup清理數據
4) help
5) version
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM