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 /tmpbzr 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 目錄下生成二進制命令行工具 sysbenchls -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/sysbenchmysqladmin 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測試
在上面初始化數據參數的基礎上,再增加一些參數,即可開始進行測試了:
新聞熱點
疑難解答