mysql性能调优

文章讲述了作者在优化MySQL性能时,通过Sysbench压测从1WQPS提升到百万QPS的过程,涉及到线程数调整、warmup参数、SSL设置、performance_schema影响、query_cache_size的调整以及Unixsocket连接的应用。
摘要由CSDN通过智能技术生成

sysbench压测调优到百万级别qps

这篇文章https://www.percona.com/blog/millions-queries-per-second-postgresql-and-mysql-peaceful-battle-at-modern-demanding-workloads/#:~:text=We%20contacted%20SysBench%20author%20Alexey%20Kopytov%2C%20and%20he,the%20concurrency_kit%20branch%20%28better%20concurrency%20and%20Lua%20processing%29表示mysql和pg可以达到百万级别的QPS,于是我们在自己的实例上进行测试。
使用文章中推荐的方法来测试:

sysbench /usr/share/sysbench/oltp_point_select.lua --db-driver=mysql \

--table-size=10000000 --tables=8 --threads=$1 --time=300 \

--rate=0 --report-interval=1 --rand-type=uniform --rand-seed=1 \

--mysql-user=$user --mysql-password=$pass --mysql-host=$host \

--mysql-port=$port --events=0 run

得到结果:
在这里插入图片描述
发现效果不佳,只有1W多QPS。。

线程数调大+warmup参数调大试试:
在这里插入图片描述
发现没有warm-up参数。。。这个时候就应该意识到是版本问题了,然而还在试错。

继续修改参数ssl=0 ,performance_schema=OFF (performance_schema简称ps,这个参数是开启对mysql的性能检测,对于mysql整体性能有一定影响)
在这里插入图片描述
有一些提高,但是并没有数量级的变化,这个时候发现时延很高,意识到应该使用Unix socket连接,目前测试使用另外一台机器,达不到理想效果;

继续调参,5.7把query_cache_size设成0,(这个参数允许 MySQL 在缓存中存储查询结果,从而避免了对数据库的查询操作,提高了查询性能。但是在某些情况下,查询缓存可能会对 MySQL 的性能产生负面影响,比如数据更新频繁的情况下,因为每次数据更新都会导致相关的查询缓存失效。在 MySQL 8.0 中,query_cache_size 改成了query_cache_type 参数。MySQL 8.0 中的查询缓存实现方式与之前的版本有所不同,因此建议不要在 MySQL 8.0 中使用查询缓存,而是采用其他性能优化措施。)
在这里插入图片描述
好多了,还得是缓存!

改成unix-socket:
在这里插入图片描述

达标了~,测试脚本:

sysbench /usr/share/sysbench/oltp_point_select.lua --db-driver=mysql \
--table-size=25000 --tables=8 \
--rate=0 --report-interval=10 --rand-type=uniform --rand-seed=1 \
--time=60 --threads=128 --mysql-socket=/var/lib/mysql/mysql.sock \
--mysql-user=root --mysql-password=Admin@123 --mysql-host=127.0.0.1 \
--mysql-port=3306 --mysql-db=test123 --events=0 run

发现线程控制在128性能最好,高了低了都不如128.

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值