【问题】

有台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. IntelliJ IDEA 添加本地xsd文件
  2. BurpSuite实例教程讲解
  3. ZooKeeper与Eureka对比
  4. JS怎样捕获浏览器关闭时间弹出自定义对话框
  5. 【已解决】applicationContext.xml cannot be opened because it does not exist
  6. 基于python实现将一个文件夹中的图片移动到另一个文件夹
  7. html的table弹窗_Js弹出基于Table的可关闭浮动层
  8. java必会的英语单词
  9. linux编译内核支持pam,linux编译内核make menuconfig报错解决办法
  10. PyTorch中“CUDA out of memory”的调试笔记
  11. poj 2778 DNA Sequence
  12. 电脑基本快捷键,你知道多少?
  13. 读《松本行弘的程序世界》——松本行弘眼中Ruby受欢迎的原因
  14. HTML颜色码对照表-英文代码、中文描述、十六进制、rgb值
  15. VC、PE和天使投资的解释与区别?
  16. [通信技术]Iub接口协议——专用传输信道(DCH)的用户平面协议
  17. html5 竖线的实现,border 实现竖线
  18. linux系统盘ssd,Linux系统下如何使用SSD固态硬盘
  19. 神经调节的知识网络图,图神经网络与知识图谱
  20. Android开发音乐播放器

热门文章

  1. 产品研发过程管理专题——基于产品的测试管理(用友软件测试流程初探)
  2. Shiro【授权过滤器、与ehcache整合、验证码、记住我】
  3. 005-搭建框架-实现AOP机制【二】AOP技术
  4. MyBatis整合Spring的实现(11)
  5. SVN的配置与使用方法
  6. Protobuf实现Android Socket通讯开发教程
  7. jquery复选框checkbox实现删除
  8. java导出sas_[转载]SAS Proc Export导出文件
  9. antd 日期时间选择_【UI设计】日期选择器的常见样式总结
  10. jbod ugood 磁盘驱动状态_NTFS磁盘读写工具Mounty免费版