对数据库进行压测

思路:压测软件sysbench,这个软件需要安装在虚拟机上,而且虚拟机需要安装mysql,xshell窗口输入命令进行测试

  1. 我们先安装虚拟机,这里我用的是VMware
  2. 需要注意的就是需要开启NAT的网络模式(本次所使用的虚拟机为4核8g)
  3. 还需要注意一点的就是虚拟机跟物理机需要在同一个局域网,linux的ip:ifconfig Windows的ip:ipconfig,在物理机的环境下ping通虚拟机的ip
  4. 使用xshell等软件连接上虚拟机
  5. 在虚拟机上安装mysql
  6. 下载rpm安装包>
    wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
  7. 安装rpm
    https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
  8. 会得到两个配置文件,下载需要用cd /etc/yum.repos.d/进入该文件夹
  9. vi mysql-community.repomysql-community.repo进行修改
  10. 先按住i进入编辑状态,编辑完毕:wq退出并保存
    在这里插入图片描述
  11. cd回到apps目录下载安装mysql和其客户端
    yum -y install mysql-community-client mysql-community-server mysql-community-devel
  12. 检查是否安装好mysql rpm -qa | grep mysql
  13. 如图所示在这里插入图片描述
  14. 接下来我们就用mysql进行远程连接
  15. 启动mysql systemctl start mysql
  16. 查看其状态 systemctl status mysql在这里插入图片描述
  17. 登录mysql mysql -u root -p默认无密码直接敲回车在这里插入图片描述
  18. 重新设置密码set password=password('root');密码就是root(别把;分号漏了,要不然执行不了语句)
  19. 刷新权限 flush privileges
  20. 退出用新密码登录
  21. 接下来我们就用本地的Navicat连接虚拟机上的mysql在这里插入图片描述

在这里插入图片描述

  1. 点击连接
  2. 下载压测软件sysbench
    curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash sudo yum -y install sysbench
  3. 使用sysbench --version 如果能看到版本号代表已经安装好
  4. 使用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
  1. 接下来就是进行全面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次重连

  2. 在这里插入图片描述

  3. 测试只读性能测试变成oltp_read_only模式

  4. 测试删除性能使用oltp_delete模式

  5. 测试数据库更新索引字段性能,使用oltp_update_index模式

  6. 测试数据库更新非索引字段性能,使用oltp_update_non_index模式

  7. 测试数据库插入性能,使用oltp_insert模式

  8. 测试只写性能测试变成oltp_write_only模式

要使用JMeter对数据库进行压测,需要进行一些配置和设置。首先,您需要在JMeter的测试计划中配置驱动程序包。这可以通过在测试计划中添加一个JDBC连接配置元件来完成。在该配置元件中,您需要提供数据库的连接信息,例如数据库URL、用户名和密码等。您可以参考中提供的jmeter压测达梦数据库的jdbc配置模板来设置这些信息。 接下来,您需要将JMeter插件(JMeterPlugins-Extras.jar和JMeterPlugins-Standard.jar)放到JMeter的lib/ext目录下。这可以通过将这两个插件文件复制到apache-jmeter-X.X/lib/ext目录中来完成。这些插件提供了一些额外的功能和功能扩展,可以帮助您更好地进行数据库压测。更详细的步骤可以参考和。 一旦您完成了上述配置和设置,您可以使用JMeter的Sampler来模拟数据库操作,例如执行SQL查询或更新操作。您可以设置并发用户、请求频率和持续时间等参,以模拟实际的数据库负载。您还可以使用JMeter的监视器来收集并分析压测结果,例如响应时间、吞吐量和错误率等指标。 总结起来,要使用JMeter对数据库进行压测,您需要进行以下几个步骤: 1. 在JMeter的测试计划中配置驱动程序包,提供数据库的连接信息。 2. 将JMeter插件(JMeterPlugins-Extras.jar和JMeterPlugins-Standard.jar)放到JMeter的lib/ext目录下。 3. 使用JMeter的Sampler来模拟数据库操作,设置并发用户、请求频率和持续时间等参。 4. 使用JMeter的监视器来收集并分析压测结果。 希望这些步骤对您有所帮助!如有更多问题,欢迎继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值