【问题】

有台MySQL 5.6.21的数据库实例以写入为主,IO %util接近100%

写入IOPS很高

【分析过程】

1、通过iotop工具可以看到当前IO消耗最高的mysql线程

2、查看线程49342的堆栈,可以看到正在进行redo log的刷新,对应的是9号文件

3、9号文件对应的是redo log的第一个文件

为什么mysql进程会频繁的刷新redo log文件,要结合redolog的刷盘策略来分析,关键是innodb_flush_log_at_trx_commit参数,

默认是1,最安全,但在写压力大的情况下,也会带来较大的性能影响,每次事务提交时MySQL都会把log buffer的数据写入log file,并且flush(刷到磁盘)中去。

结合这个集群的写入场景来看,大部分都是小事务的写入,每次事务提交都会触发刷盘动作,这种场景下通过增大innodb_log_buffer_size和innodb_log_file_size的优化效果不明显

【优化方案】

1、应用层面,对于写压力大的系统,可以将单条的insert语句优化为小批量的insert语句,这样事务commit的次数减少,redo log刷盘减少,性能理论上会有提升

2、MySQL层面,对于日志类型的系统,如果允许宕机的情况下少量数据丢失,可以将innodb_flush_log_at_trx_commit参数调整为2,

当设置为2时,则在事务提交时只做write操作,只保证写到系统的page cache,因此实例crash不会丢失事务,但宕机则可能丢失事务

在这台服务器上测试,将参数调整为2时,IO的请求从200M/S降到约10M/S压力会减少10倍以上

3、系统层面,更换性能更佳的磁盘

https://www.cnblogs.com/wangdong/p/9814988.html

mysql io 100_MySQL服务器 IO 100%的案例分析相关推荐

  1. mysql io 100_MySQL服务器 IO 100%的分析与优化方案

    压力测试过程中,如果因为资源使用瓶颈等问题引发最直接性能问题是业务交易响应时间偏大,TPS逐渐降低等.而问题定位分析通常情况下,最优先排查的是监控服务器资源利用率,例如先用TOP 或者nmon等查看C ...

  2. mysql 分区 性能更差_用案例分析MySQL 5.7分区表性能下降的根本原因

    前言:希望通过本文,使MySQL5.7.18的使用者知晓分区表使用中存在的陷阱,避免在该版本上继续踩坑.同时通过对源码的分享,升级MySQL5.7.18时分区表性能下降的根本原因,向MySQL源码爱好 ...

  3. 一个MySQL 5.7 分区表性能下降的案例分析

    告知MySQL5.7.18的使用者分区表使用中存在的陷阱,避免在该版本上继续踩坑.同时通过对源码的讲解,升级MySQL5.7.18时分区表性能下降的根本原因,向MySQL源码爱好者展示分区表实现中锁的 ...

  4. linux ftp服务器防火墙设置,Linux 为FTP 服务器添加iptables规则--案例分析

    一.故障描述 由于开发提出需求,为他们搭建内部Linux习下ftp服务器,搭建好后,提交给他们,测试可以正常使用.后来过了一段时间后,有一天无法登陆了.于是去ftp主机上检查问题,ftp的配置文件没有 ...

  5. mysql ddl 锁_MySQL Online DDL导致全局锁表案例分析

    MySQL Online DDL导致全局锁表案例分析 我这边遇到了什么问题? 线上给某个表执行新增索引SQL, 然后整个数据CPU打到100%, 连接数暴增到极限, 最后导致所有访问数据库的应用都奔溃 ...

  6. mysql io_MySQL服务器 IO 100%的分析与优化方案

    前言 压力测试过程中,如果因为资源使用瓶颈等问题引发最直接性能问题是业务交易响应时间偏大,TPS逐渐降低等.而问题定位分析通常情况下,最优先排查的是监控服务器资源利用率,例如先用TOP 或者nmon等 ...

  7. Oracle数据库服务器IO高的分析方案和案例探讨

    Oracle数据库服务器IO高的分析方案和案例探讨 本文原题<ORACLE数据库服务器IO高的分析方案和案例探讨> 目录: 慧眼识珠--服务器磁盘这么繁忙,到底是谁干的? 谨记于心--OR ...

  8. 服务器io测试工具-fio

    Fio 是一个 I/O 工具,旨在用于基准测试和压力/硬件验证.它支持 19 种不同类型的 I/O 引擎(sync.mmap.libaio.posixaio.SG v3.splice.null.net ...

  9. 网络编程实战之高级篇, 彻底解决面试C10k问题, 高并发服务器, IO多路复用, 同时监视多个IO事件

    目录 一.前言 二.IO多路复用的理解 三.IO多路复用的发展 select poll epoll ​四.C10K服务端代码 五. 总结 一.前言 网络入门篇,从操作系统的层次推开网络大门 网络入门基 ...

最新文章

  1. 每个公司都会用的短 URL 服务,怎么设计与实现?
  2. 《预训练周刊》第33期:艾伦AI研究所等 | 预训练语言模型的高效分层域适应
  3. 互联网大脑如何产生“梦境“并形成元宇宙
  4. c语言switch设计计算器,求助。。关于用switch编写简易计算器
  5. Linux 文件查找(find)
  6. 1bit和1byte_1byte等于( )bit_学小易找答案
  7. VB6 中将数据导出到 Excel 提速之法
  8. 你要好好的---歌词
  9. 寻找春天nbsp;九宫格日记-2011.08.24
  10. 基于java+ssm的企业员工考勤系统
  11. 微信小程序图片在不同设备显示保持图片比例并且居中
  12. Telegram Download Default Chat Wallpaper
  13. win10 生成Android 的 keystore 文件
  14. 【线代】矩阵的秩和线性方程组的解的情况
  15. 【专访蓝景科技】5G+实时云渲染赋能数字孪生,共建元宇宙
  16. 回归预测 | MATLAB实现MPR多元多项式回归
  17. unpacked value/target cannot be used in assignment
  18. 深深的思考与共鸣——资源共享
  19. FusionCharts绘图插件详解
  20. 【思维风暴】算法迭代和递归的理解

热门文章

  1. Qt的信号槽机制介绍
  2. javascript数据结构与算法 --- 高级排序算法
  3. js selector设计及实现(一) 实现思路
  4. 购物车单选全选,计算总价,出现个小问题,没找到.....
  5. clean code
  6. oracle数据库文件dbf复制#ocp试验#
  7. 用户空间与内核空间数据交换的方式(2)------procfs
  8. 【4】CCNA理论第三天
  9. 电脑连接示波器读取数据
  10. skywalking前端_skywalking实现分布式系统链路追踪