本期是写的测试mysql的性能测试,本人也是第一次接触mysql的性能,拿到这个任务时也是多方1查询资料,
sysbench压力测试工具简介:
sysbench是一个开源的、模块化的、跨平台的多线程性能测试工具,可以用来进行CPU、内存、磁盘I/O、线程、数据库的性能测试。目前支持的数据库有MySQL、Oracle和PostgreSQL。以下操作都将以支持MySQL数据库为例进行。
Sysbench的测试主要包括以下几个方面:
1、磁盘io性能
2、cpu性能
3、内存分配及传输速度
4、POSIX线程性能
5、调度程序性能
6、数据库性能(OLTP基准测试).
原文链接:https://blog.csdn.net/eagle89/article/details/88120154
一、安装sysbench
# 如无法直接下载,则上传到云平机如9.75.147.230,再scp到CVM安装,不能自定义目录,需要在特定的目录下解压安装
cd /usr/local/src
wget https:
//codeload.github.com/xxxxx/sysbench/tar.gz/1.0.17
tar -xzvf /usr/local/src/sysbench-1.0.17.tar.gz -C /usr/local/
tar -xzvf /usr/local/src/1.0.17 -C /usr/local/&&
cd /usr/local/sysbench-1.0.17
##RHEL/CentOS
cd /usr/local/sysbench-1.0.17yum -y install make automake libtool pkgconfig libaio-devel
# For MySQL support, replace with mysql-devel on RHEL/CentOS 5
yum -y install mariadb-devel openssl-devel
# For PostgreSQL support
yum -y install postgresql-devel
##Build and Install
./autogen.sh
# Add --with-pgsql to build with PostgreSQL support
./configure
--with-pgsql
make -j 128
(make的时候可能会遇见文档权限不足,直接退到sysbench这个文件夹上一个目录,修改文件权限
chmod 777 目录名 -R)make install
sysbench --version
mkdir -p /usr/local/share/sysbench/pgtest/ && cp /usr/local/share/sysbench/*.lua /usr/local/share/sysbench/pgtest/ 根据你的目录索引 ./configure --prefix=/var/lib/pgsql/sysbench --without-mysql --with-pgsql --with-pgsql-includes=/usr/pgsql-10/include --with-pgsql-libs=/usr/pgsql-10/lib export LD_LIBRARY_PATH=/usr/local/mysql/include
如果出现权限不够,可能是因为文件的默认权限是不可执行,这时候需要修改一下权限,chmod 777 *
最后执行sysbench --version,能出现
版本信息等就安装成功了,编译完成之后就可以正常使用了,
二、配置测试脚本文件(可以自主创建文件执行)
#!/bin/bash
host=11.44.50.xxx # 实例或者节点IP
port=110xx #实例或者节点端口
tables=2000 # 需要生成数据存储的表的个数
size=1000000 # 每张表数据的大小
threads=128 # 每次线程数,最好不要超过表的大小
user=tbase # 数据库用户名
passwd=Sky@xxx # 数据库用户密码
timestr=$(date +"%Y%m%d%H%M%S")
testdb=sysbench_${tables}_${size}_${timestr}
准备数据:
sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-host=xx.xx.xx.xx --mysql-port=xxxx --mysql-user=xxxx --mysql-password=xxxxxxxx --mysql-db=sysbench --db-driver=mysql --tables=512 --table-size=2000000 --report-interval=10 --threads=16 --max-time=1800 prepare
实例压测:
sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-host=xx.xx.xx.xx --mysql-port=xxxx --mysql-user=xxxx --mysql-password=xxxxxxxx --mysql-db=sysbench --db-driver=mysql --tables=512 --table-size=2000000 --report-interval=10 --threads=16 --max-time=1800 run
数据清空:
sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-host=xx.xx.xx.xx --mysql-port=xxxx --mysql-user=xxxx --mysql-password=xxxxxxxx --mysql-db=sysbench --db-driver=mysql --tables=512 --table-size=2000000 --report-interval=10 --threads=16 --max-time=1800 cleanup
其中数据生成大小可以参考如下(具体数据大小可以根据下列数据构造):
2481GB:
tables=100,size=100000000
248GB:
tables=1000,size=1000000
25GB:
tables=100,size=1000000
2562MB:
tables=10,size=1000000
2554MB:
tables=1,size=10000000
三、测试生成数据库
四、测试过程查看数据灌入情况
五、测试结果分析(后续补充具体分析)