以下步骤在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小时。
```