MySQL性能壓力基準測試工具sysbench的使用簡介
1、sysbench介紹
這里介紹一款MySQL數(shù)據(jù)庫的壓力測試軟件sysbench,用它來進行基準測試。
sysbench 是一個開源的、模塊化的、跨平臺的多線程性能測試工具,
可以用來進行CPU、內(nèi)存、磁盤I/O、線程、數(shù)據(jù)庫的性能測試。
目前支持的數(shù)據(jù)庫有MySQL、Oracle 和PostgreSQL。
#項目下載地址:
https://launchpad.net/sysbench
http://github.com/akopytov/sysbench
該基準套件的想法是快速獲得有關系統(tǒng)性能的印象,而無需設置復雜的數(shù)據(jù)庫基準,甚至不需要安裝數(shù)據(jù)庫。
當前功能允許測試以下系統(tǒng)參數(shù):
- #CPU性能
- file I/O performance #文件IO性能,磁盤IO性能
- scheduler performance #調(diào)度程序性能
- memory allocation and transfer speed #內(nèi)存分配和傳輸速度
- POSIX threads implementation performance #POSIX線程實現(xiàn)性能
- database server performance (OLTP benchmark) #數(shù)據(jù)庫服務器性能(OLTP基準)
Sysbench的oltp主要用于評估測試各種不同系統(tǒng)參數(shù)下的數(shù)據(jù)庫負載情況。
相比0.4版本,后續(xù)的版本oltp測試主要結合了lua腳本,不需要修改源碼,通過自定義lua腳本就可以實現(xiàn)不同業(yè)務類型的測試。
SysBench的缺點:
模擬的表結構太簡單,不像tpcc-mysql那樣完整的事務系統(tǒng),但對于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 /softtar zxvf sysbench-1.0.15.tar.gzcd 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 #配置環(huán)境變量 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/ #執(zhí)行l(wèi)dconfig -v更新下配置就可以了 [root@tse01 local]# /sbin/ldconfig -v
#提示說明:
如果你在非標準位置安裝的MySQL頭文件和庫(沒有 mysql_config可以在找到PATH),
你可以明確指定--with-mysql-includes和--with-mysql-libs選項參數(shù),如上面。
要在沒有MySQL支持的情況下編譯sysbench,請使用--without-mysql。
如果沒有可用的數(shù)據(jù)庫驅(qū)動程序,則與數(shù)據(jù)庫相關的腳本將不起作用,但其他基準測試將起作用。
#常規(guī)命令行選項
下表列出了受支持的常用選項,它們的描述和默認值:
選項
|
描述
|
默認值
|
--threads
|
要創(chuàng)建的工作線程總數(shù)
|
1個
|
--events
|
要求總數(shù)的限制。0(默認值)表示沒有限制
|
0
|
--time
|
總執(zhí)行時間限制(以秒為單位)。0表示沒有限制
|
10
|
--warmup-time
|
在啟用統(tǒng)計信息的情況下運行實際基準測試之前,在禁用統(tǒng)計信息的情況下執(zhí)行事件數(shù)秒鐘。當您要從統(tǒng)計信息中排除基準測試運行的初始期間時,此功能很有用。在許多基準測試中,初始階段并不具有代表性,因為CPU /數(shù)據(jù)庫/頁面和其他緩存需要一些時間進行預熱
|
0
|
--rate
|
平均交易率。該數(shù)字指定所有線程平均每秒應執(zhí)行多少事件(事務)。0(默認)表示無限制速率,即事件以盡可能快的速度執(zhí)行
|
0
|
--thread-init-timeout
|
輔助線程初始化的等待時間(以秒為單位)
|
30
|
--thread-stack-size
|
每個線程的堆棧大小
|
32K
|
--report-interval
|
定期以指定的時間間隔(以秒為單位)報告中間統(tǒng)計信息。請注意,此選項生成的統(tǒng)計信息是按時間間隔而不是累積的。0禁用中間報告
|
0
|
--debug
|
打印更多調(diào)試信息
|
離開
|
--validate
|
盡可能驗證測試結果
|
離開
|
--help
|
根據(jù)常規(guī)語法或指定的測試打印幫助,然后退出
|
離開
|
--verbosity
|
詳細級別(0-僅關鍵消息,5-調(diào)試)
|
4
|
--percentile
|
sysbench測量所有已處理請求的執(zhí)行時間,以顯示統(tǒng)計信息,例如最小,平均和最大執(zhí)行時間。對于大多數(shù)基準測試,了解與某個百分位數(shù)相匹配的請求執(zhí)行時間值也很有用(例如,95%百分位數(shù)意味著我們應該丟棄最長請求的5%,并從其余請求中選擇最大值)。此選項允許指定要計算的查詢執(zhí)行時間的百分等級
|
95
|
--luajit-cmd
|
執(zhí)行LuaJIT控制命令。此選項等效于luajit -j。有關更多信息,請參見LuaJIT文檔。
|
請注意,可以通過附加相應的乘法后綴(K表示千字節(jié),M表示兆字節(jié),G表示千兆字節(jié),T表示兆字節(jié))
來指定所有大小選項(--thread-stack-size如此表中所示)的數(shù)值。
#sysbench使用[command]常用的有:
1) prepare準備測試,生成數(shù)據(jù)
2) run執(zhí)行測試
3) cleanup清理數(shù)據(jù)
4) help
5) version
以上就是MySQL性能壓力基準測試工具sysbench的使用簡介的詳細內(nèi)容,更多關于MySQL sysbench的使用的資料請關注腳本之家其它相關文章!
相關文章
MySQL使用Partition功能實現(xiàn)水平分區(qū)的策略
這篇文章主要介紹了MySQL使用Partition功能實現(xiàn)水平分區(qū),給大家提到了水平分區(qū)的5種策略,通過sql語句給大家介紹的非常詳細,需要的朋友可以參考下2021-12-12mysql優(yōu)化的重要參數(shù) key_buffer_size table_cache
MySQL服務器端的參數(shù)有很多,但是對于大多數(shù)初學者來說,眾多的參數(shù)往往使得我們不知所措,但是哪些參數(shù)是需要我們調(diào)整的,哪些對服務器的性能影響最大呢2016-05-05mysql數(shù)據(jù)庫查詢優(yōu)化 mysql效率
MySQL由于它本身的小巧和操作的高效, 在數(shù)據(jù)庫應用中越來越多的被采用.我在開發(fā)一個P2P應用的時候曾經(jīng)使用MySQL來保存P2P節(jié)點,由于P2P的應用中,結點數(shù)動輒上萬個,而且節(jié)點變化頻繁,因此一定要保持查詢和插入的高效.以下是我在使用過程中做的提高效率的三個有效的嘗試. 1. 使用statement進行綁定查詢 2. 隨機的獲取記錄 3. 使用連接池管理連接.2008-01-01阿里云服務器手動實現(xiàn)mysql雙機熱備的兩種方式
阿里云服務器由于不支持keepalive虛擬ip,導致無法通過keepalive來實現(xiàn)mysql的雙機熱備。我們這里要實現(xiàn)阿里云的雙機熱備有兩種方式。感興趣的朋友跟隨小編一起看看吧2019-10-10MySQL創(chuàng)建和刪除數(shù)據(jù)表的命令及語法詳解
這篇文章主要介紹了MySQL創(chuàng)建和刪除數(shù)據(jù)表的命令及語法,是MySQL入門學習中的基礎知識,需要的朋友可以參考下2015-11-11MySQL實現(xiàn)replace函數(shù)的幾種實用場景
這篇文章主要介紹了MySQL實現(xiàn)replace函數(shù)的幾種實用場景,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-02-02Windows10系統(tǒng)下Mysql8.0.13忘記root密碼的操作方法
這篇文章主要給大家介紹了關于Windows10系統(tǒng)下Mysql8.0.13忘記root密碼的操作方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01