以下步驟在kylinv10上進行:
下載
```
wget h...s://github.com/akopytov/sysbench/archive/1.0.zip -O sysbench-1.0.zip
```
解壓
```
unzip sysbench-1.0.zip
cd sysbench-1.0/
```
安裝依賴庫
```
yum install automake libtool mysql-devel zstd-devel
# 缺少mysql-devel configure步驟會失敗
# 缺少 zstd-devel make步驟會失敗
```
編譯安裝
```
./autogen.sh
./configure
make
make install
```
檢查安裝是否成功
```
sysbench --version
```
lua目錄
```
/root/sysbench-1.0/tests/include/inspect.lua
/root/sysbench-1.0/tests/include/oltp_legacy/bulk_insert.lua
/root/sysbench-1.0/tests/include/oltp_legacy/common.lua
/root/sysbench-1.0/tests/include/oltp_legacy/delete.lua
/root/sysbench-1.0/tests/include/oltp_legacy/insert.lua
/root/sysbench-1.0/tests/include/oltp_legacy/oltp.lua
/root/sysbench-1.0/tests/include/oltp_legacy/oltp_simple.lua
/root/sysbench-1.0/tests/include/oltp_legacy/parallel_prepare.lua
/root/sysbench-1.0/tests/include/oltp_legacy/select.lua
/root/sysbench-1.0/tests/include/oltp_legacy/select_random_points.lua
/root/sysbench-1.0/tests/include/oltp_legacy/select_random_ranges.lua
/root/sysbench-1.0/tests/include/oltp_legacy/update_index.lua
/root/sysbench-1.0/tests/include/oltp_legacy/update_non_index.lua
```
壓力測試
1. 安裝tmux,避免終端退出
```
yum install -y tmux
tmux new -s sysbench
新建會話tmux new -s my_session
在 Tmux 窗口運行所需的程序
按下快捷鍵Ctrl+b d將會話分離
下次使用時,重新連接到會話tmux attach-session -t my_session
```
2. 創建測試數據庫
```
mysql -u root -P4000 -h 1.1.1.1 -p'123456'
create database sbtest;
use mysql
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
FLUSH PRIVILEGES;
```
3. 創建測試表
```
sysbench --mysql-host=1.1.1.1 --mysql-port=4000 --mysql-user=root \
--mysql-password='123456' \
--test=tests/include/oltp_legacy/oltp.lua --oltp_tables_count=10 \
--oltp-table-size=100000 --rand-init=on prepare
```
4. 壓力測試
```
sysbench --mysql-host=1.1.1.1 --mysql-port=4000 --mysql-user=root \
--mysql-password=123456 --test=tests/include/oltp_legacy/oltp.lua --oltp_tables_count=10 \
--oltp-table-size=10000000 --num-threads=8 --oltp-read-only=off \
--report-interval=10 --rand-type=uniform --max-time=3600 \
--max-requests=0 --percentile=99 run >> ./log/sysbench_oltp20221215.log
#幾個選項稍微解釋下
--num-threads=8 表示發起 8個并發連接
--oltp-read-only=off 表示不要進行只讀測試,也就是會采用讀寫混合模式測試
--report-interval=10 表示每10秒輸出一次測試進度報告
--rand-type=uniform 表示隨機類型為固定模式,其他幾個可選隨機模式:uniform(固定),gaussian(高斯),special(特定的),pareto(帕累托)
--max-time=120 表示最大執行時長為 120秒
--max-requests=0 表示總請求數為 0,因為上面已經定義了總執行時長,所以總請求數可以設定為 0;也可以只設定總請求數,不設定最大執行時長
--percentile=99 表示設定采樣比例,默認是 95%,即丟棄1%的長請求,在剩余的99%里取最大值
即:模擬 對10個表并發OLTP測試,每個表1000萬行記錄,持續壓測時間為 1小時。
```