Linux磁盘IO利用率高的场景排查解决路径
作为一个DBA难免不了会遇到性能问题(尤其是磁盘IO等的性能问题),那么我们遇到性能问题该如何进行排查?例如我们在高并发的业务下,出现业务响应慢,处理时间长,我们又该如何入手进行排查和解决,技术社群的这篇文章《故障分析 | linux 磁盘io利用率高,分析的正确姿势》将会讲解IO高的情况下如何分析及定位。一、环境复现环境配置:本次测试使用128C_512G_4TSSD服务器配置,MySQL版本为8.0.27。场景模拟:使用sysbench创建5个表,每个表2亿条数据,执行产生笛卡尔积查询的sql语句,产生io,可以模拟业务压力。首先使用sysbench进行数据压测
二、系统层面底层故障排查
Shell> sysbench --test=/usr/local/share/sysbench/oltp_insert.lua --mysql-host=XXX --mysql-port=3306 --mysql-user=pcms --mysql-password=abc123 --mysql-db=sysbench --percentile=99 --table-size=2000000000 --tables=5 --threads=1000 prepare
使用sysbench进行模拟高并发,
shell> sysbench --test=/usr/local/share/sysbench/oltp_write_only.lua --mysql-host=xxx --mysql-port=3306 --mysql-user=pcms --mysql-password=abc123 --mysql-db=sysbench --percentile=99 --table-size=2000000000 --tables=5 --threads=1000 --max-time=60000 --report-interval=1 --threads=1000 --max-requests=0 --mysql-ignore-errors=all run
执行笛卡尔积sql语句,
mysql> select SQL_NO_CACHE b.id,a.k from sbtest_a a left join sbtest_b b on a.id=b.id group by a.k order by b.c desc;