思路:压测软件sysbench,这个软件需要安装在虚拟机上,而且虚拟机需要安装mysql,xshell窗口输入命令进行测试
- 我们先安装虚拟机,这里我用的是VMware
- 需要注意的就是需要开启NAT的网络模式(本次所使用的虚拟机为4核8g)
- 还需要注意一点的就是虚拟机跟物理机需要在同一个局域网,linux的ip:ifconfig Windows的ip:ipconfig,在物理机的环境下ping通虚拟机的ip
- 使用xshell等软件连接上虚拟机
- 在虚拟机上安装mysql
- 下载rpm安装包>
wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
- 安装rpm
https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
- 会得到两个配置文件,下载需要用
cd /etc/yum.repos.d/
进入该文件夹 vi mysql-community.repo
对mysql-community.repo
进行修改- 先按住
i
进入编辑状态,编辑完毕:wq
退出并保存
- cd回到apps目录下载安装mysql和其客户端
yum -y install mysql-community-client mysql-community-server mysql-community-devel
- 检查是否安装好mysql
rpm -qa | grep mysql
- 如图所示
- 接下来我们就用mysql进行远程连接
- 启动mysql
systemctl start mysql
- 查看其状态
systemctl status mysql
- 登录mysql
mysql -u root -p
默认无密码直接敲回车 - 重新设置密码
set password=password('root');
密码就是root(别把;分号漏了,要不然执行不了语句) - 刷新权限
flush privileges
- 退出用新密码登录
- 接下来我们就用本地的Navicat连接虚拟机上的mysql
- 点击连接
- 下载压测软件sysbench
curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash sudo yum -y install sysbench
- 使用
sysbench --version
如果能看到版本号代表已经安装好 - 使用sysbench构造好数据库数据
sysbench --db-driver=mysql --time=300 --threads=10 --report-interval=1 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password=root --mysql-db=test_db --tables=20 --table_size=1000000 oltp_read_write --db-ps-mode=disable prepare
sysbench
//基于mysql驱动器去连接mysql数据库
--db-driver=mysql
//连接时长为300秒
--time=300
//十个线程
--threads=10
//每隔一秒报告一次
--report-interval=1
//指定哪台机器上的哪个端口上的mysql,用户名以及密码是多少
--mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password=root
//在test_db(自己先创建好)这个库中创建20张表,每张表一百万的数据
--mysql-db=test_db --tables=20 --table_size=1000000
//执行oltp的读写操作
oltp_read_write
//关闭ps模式
--db-ps-mode=disable
// 按照上叙的构建将会自动创建20个测试表,每个表百万数据
prepare
-
接下来就是进行全面run测试
sysbench --db-driver=mysql --time=300 --threads=10 --report-interval=1 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password=root --mysql-db=test_db --tables=20 --table_size=1000000 oltp_read_write --db-ps-mode=disable run
将prepare换成run
解读一下:依次为 10个线程>每秒823个tps>每秒16496个qps>读qps数/写qps数/其他qps数>百分之95的延迟在24.83秒内>每秒0个错误/每秒0次重连 -
测试只读性能测试变成
oltp_read_only
模式 -
测试删除性能使用
oltp_delete
模式 -
测试数据库更新索引字段性能,使用
oltp_update_index
模式 -
测试数据库更新非索引字段性能,使用
oltp_update_non_index
模式 -
测试数据库插入性能,使用
oltp_insert
模式 -
测试只写性能测试变成
oltp_write_only
模式