SysBench工具介绍
SysBench是一个跨平台且支持多线程的模块化基准测试工具,用于评估系统在运行高负载的数据库时相关核心参数的性能表现。可绕过复杂的数据库基准设置,甚至在没有安装数据库的前提下,快速了解数据库系统的性能。
安装方法
yum install gcc gcc-c++ autoconf automake make libtool bzr mysql-devel git mysql
git clone https://github.com/akopytov/sysbench.git
##从Git中下载Sysbench
cd sysbench
##打开sysbench目录
git checkout 1.0.18
##切换到sysbench 1.0.18版本
./autogen.sh
##运行autogen.sh
./configure --prefix=/usr --mandir=/usr/share/man
make
##编译
make install
测试用例
OLTP读写混合场景压测
1. 准备数据
# # --mysql-host 填入mysql映射的ip,--mysql-port 填入映射的端口,用户填入测试的用户 --mysql-password 填入密码 --mysql-db 填入测试数据库,没有的话需要事先创建 --table_size表空间单位mb threads= 填入线程数
sysbench --db-driver=mysql --mysql-host=XXX --mysql-port 填入映射的端口=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=2500 --tables=100 --events=0 --time=300 --threads=XXX oltp_read_write prepare
2. 运行压测
# --mysql-host 填入mysql映射的ip,--mysql-port 填入映射的端口,用户填入测试的用户 --mysql-password 填入密码 --mysql-db 填入测试数据库,没有的话需要事先创建 --table_size表空间单位mb threads= 填入线程数
sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300 --threads=XXX --percentile=95 --report-interval=1 oltp_read_write run
3. 清理数据
# --mysql-host 填入mysql映射的ip,--mysql-port 填入映射的端口,用户填入测试的用户 --mysql-password 填入密码 --mysql-db 填入测试数据库,没有的话需要事先创建 --table_size表空间单位mb threads= 填入线程数
sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300 --threads=XXX --percentile=95 oltp_read_write cleanup
OLTP只写场景压测
1. 准备数据
# # --mysql-host 填入mysql映射的ip,--mysql-port 填入映射的端口,用户填入测试的用户 --mysql-password 填入密码 --mysql-db 填入测试数据库,没有的话需要事先创建 --table_size表空间单位mb threads= 填入线程数
sysbench --db-driver=mysql --mysql-host=XXX --mysql-port 填入映射的端口=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=4500 --tables=100 --events=0 --time=300 --threads=XXX oltp_write_only prepare
2. 运行压测
# --mysql-host 填入mysql映射的ip,--mysql-port 填入映射的端口,用户填入测试的用户 --mysql-password 填入密码 --mysql-db 填入测试数据库,没有的话需要事先创建 --table_size表空间单位mb threads= 填入线程数
sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300 --threads=XXX --percentile=95 --report-interval=1 oltp_write_only run
3. 清理数据
# --mysql-host 填入mysql映射的ip,--mysql-port 填入映射的端口,用户填入测试的用户 --mysql-password 填入密码 --mysql-db 填入测试数据库,没有的话需要事先创建 --table_size表空间单位mb threads= 填入线程数
sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300 --threads=XXX --percentile=95 oltp_write_only cleanup
OLTP只读场景压测
1. 准备数据
# # --mysql-host 填入mysql映射的ip,--mysql-port 填入映射的端口,用户填入测试的用户 --mysql-password 填入密码 --mysql-db 填入测试数据库,没有的话需要事先创建 --table_size表空间单位mb threads= 填入线程数
sysbench --db-driver=mysql --mysql-host=XXX --mysql-port 填入映射的端口=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=2500 --tables=100 --events=0 --time=300 --threads=XXX oltp_read_only prepare
2. 运行压测
# --mysql-host 填入mysql映射的ip,--mysql-port 填入映射的端口,用户填入测试的用户 --mysql-password 填入密码 --mysql-db 填入测试数据库,没有的话需要事先创建 --table_size表空间单位mb threads= 填入线程数
sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300 --threads=XXX --percentile=95 --report-interval=1 oltp_read_only run
3. 清理数据
# --mysql-host 填入mysql映射的ip,--mysql-port 填入映射的端口,用户填入测试的用户 --mysql-password 填入密码 --mysql-db 填入测试数据库,没有的话需要事先创建 --table_size表空间单位mb threads= 填入线程数
sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=25000 --tables=100 --events=0 --time=300 --threads=XXX --percentile=95 oltp_read_only cleanup