sysbench 是一款模組化、跨平台、多線程的基準測試工具,廣泛用於評估資料庫在不同系統參數下的負載表現。本文記錄在 RHEL 6.2 + MySQL 5.6.16 編譯環境下,sysbench 0.4.12 的安裝踩坑過程與 CPU 測試範例,供同類環境參考。
下載最新 0.4.12 版本源碼包 sysbench-0.4.12.tar.gz。
/usr/local/mysql)tar -xvf sysbench-0.4.12.tar.gz
cd sysbench-0.4.12
./configure --with-mysql-includes=/usr/local/mysql/include \
--with-mysql-libs=/usr/local/mysql/lib \
&& make && make install
因 MySQL 為編譯安裝,需透過 --with-mysql-includes 與 --with-mysql-libs 指定頭文件與庫文件路徑。
執行 make 時可能遇到大量 libtool 相關錯誤:
../libtool: line 841: X--tag=CC: command not found ../libtool: line 874: libtool: ignoring unknown tag : command not found ...
根因: sysbench 自帶的 libtool 腳本與系統版本不兼容。
解決方案: 修改專案根目錄下的 aclocal.m4 文件,將:
LIBTOOL='$(SHELL) $(top_builddir)/libtool'
改為使用系統 libtool:
LIBTOOL='$(SHELL) /usr/bin/libtool'
修改後重新執行 make && make install 即可順利通過編譯。
安裝完成後直接執行 sysbench 可能報錯:
sysbench: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file
雖然 /usr/local/mysql/lib/ 下存在該文件,但動態連結器預設不搜尋此路徑。解決方式:
ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/
建立軟連結至系統預設庫路徑,或將路徑加入 /etc/ld.so.conf 後執行 ldconfig。
sysbench --test=cpu --cpu-max-prime=20000 run
--test=cpu:指定 CPU 測試模組--cpu-max-prime=20000:設定質數運算上限,數值越大運算負載越重Test execution summary:
total time: 40.4541s
total number of events: 10000
total time taken by event execution: 40.4165
per-request statistics:
min: 3.64ms
avg: 4.04ms
max: 21.82ms
approx. 95 percentile: 5.20ms
sysbench 亦支援檔案 I/O、記憶體、線程調度、OLTP 等多種測試模組,可根據需求組合測試場景。後續文章將分享 OLTP 資料庫壓測實戰配置。