暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

使用Sysbench压测MySQL

IT那活儿 2024-10-28
194
点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!

Sysbench安装
Sysbench是一个开源的模块化的多线程基准性能测试工具,可以对操作系统CPU、内存、线程、IO以及数据库负载等方面的性能测试。
1.1 安装
上传并解压:
tar -xzvf sysbench-1.0.20.tar.gz
安装依赖包:
yum -y install automake libtool pkg-config libmysqlclient-dev
创建软链接:
ln -s mysql/lib/libmysqlclient.so.20 /usr/lib/libmysqlclient.so.20
开始安装:
cd sysbench-1.0.20
./autogen.sh
./configure
make -j
make install

安装完成后检查:
sysbench --version
1.2 常用参数介绍
  • --threads=N:线程数,默认1;
  • --events=N:最大允许的事件个数;
  • --time=N:总执行时间,单位是秒;
  • --thread-stack-size=SIZE:每个线程的堆栈大小;
  • --report-interval=N:生成报告的时间间隔,单位是秒;
  • --debug[=on|off]:打印更多debug信息;
  • --help[=on|off]:查看帮助;
  • --validate[=on|off]:执行验证检查;
  • --version[=on|off]:查看版本;
  • --oltp-test-mode:执行模式;
  • --oltp-tables-count:测试的表数量;
  • --oltp-table-size:测试的表的大小。
1.3 测试命令
  • prepare:准备测试数据;
  • run:进行测试;
  • cleanup:删除测试数据。


操作系统测试
2.1 CPU测试
sysbench cpu --cpu-max-prime=10000 --threads=4 run
2.2 内存测试
sysbench --test=memory --threads=4 --events=10000 --memory-total-size=1G --memory-block-size=8K --memory-oper=read run
2.3 IO测试
准备测试数据(创建5个文件,块大小1024,总大小1G):
sysbench --test=fileio --file-num=5 --file-block-size=1024 --file-total-size=1G prepare
进行测试(测试顺序读写,请求10000次,如果不能在60秒内完成,测试结束)
sysbench fileio --file-num=5 --file-block-size=1024 --file-total-size=1G --file-test-mode=seqrewr --time=60 --events=10000 --threads=4 --file-fsync-freq=200 --file-extra-flags=direct run
删除测试数据:

sysbench --test=fileio --num-threads=4  --file-total-size=1G --file-test-mode=rndrw cleanup


MySQL数据库测试
支持的lua脚本:
  • oltp_point_select:等值查询测试;
  • select_random_points:随机等值查询测试;
  • select_random_ranges:随机范围查询测试;
  • oltp_read_only:只读测试;
  • oltp_read_write:读写测试;
  • oltp_insert:插入测试;
  • bulk_insert:批量插入测试;
  • oltp_update_index:包含索引的更新测试;
  • oltp_update_non_index:不包含索引的更新测试;
  • oltp_delete:delete删除测试。
3.1 测试数据准备
create database sbtest;
sysbench --db-driver=mysql --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password=123456 --mysql-db=sbtest --table_size=1000000 --tables=20 --time=300 oltp_read_write prepare

3.2 读写测试
sysbench --db-driver=mysql --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password=123456 --mysql-db=sbtest --table_size=1000000 --tables=20 --time=300 --events=0 --threads=512 --percentile=95 --report-interval=1 oltp_read_write run
3.3 读测试
sysbench --db-driver=mysql --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password=123456 --mysql-db=sbtest --table_size=1000000 --tables=20 --time=300 --events=0 --threads=512 --percentile=95 --skip-trx=1 --report-interval=1 oltp_read_only run
3.4 写测试
sysbench --db-driver=mysql --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password=123456 --mysql-db=sbtest --table_size=1000000 --tables=20 --time=300 --events=0 --threads=512 --percentile=95 --report-interval=1 oltp_write_only run
3.5 删除测试数据
sysbench --db-driver=mysql --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password=123456 --mysql-db=sbtest --table_size=1000000 --tables=20 oltp_read_write cleanup

END


本文作者:朱谊顺(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论