压力测试过程中,如果因为资源使用瓶颈等问题引发最直接性能问题是业务交易响应时间偏大,TPS逐渐降低等。而问题定位分析通常情况下,最优先排查的是监控服务器资源利用率,例如先用TOP 或者nmon等查看CPU、内存使用情况,然后在排查IO问题,例如网络IO、磁盘IO的问题。 如果是磁盘IO问题,一般问题是SQL语法问题、MYSQL参数配置问题、服务器自身硬件瓶颈导致IOPS吞吐率问题。

本文主要给大家介绍的是关于MySQL服务器 IO 100%的分析与优化方案,下面话不多说了,来一起看看详细的介绍吧

【问题】

有台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、系统层面,更换性能更佳的磁盘

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

mysql io 100_MySQL服务器 IO 100%的分析与优化方案相关推荐

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

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

  2. mysql io 100_MySQL服务器 IO 100%的案例分析

    [问题] 有台MySQL 5.6.21的数据库实例以写入为主,IO %util接近100% 写入IOPS很高 [分析过程] 1.通过iotop工具可以看到当前IO消耗最高的mysql线程 2.查看线程 ...

  3. MySQL慢查询之慢SQL定位、日志分析与优化方案

    一个sql执行很慢的就叫慢sql,一般来说sql语句执行超过5s就能够算是慢sql,需要进行优化了 为何要对慢SQL进行治理 每一个SQL都需要消耗一定的I/O资源,SQL执行的快慢直接决定了资源被占 ...

  4. ListView流畅度翻倍!Flutter卡顿分析和优化方案

    最近因为在做Flutter中相关的性能优化,在收集很多性能数据之后发现ListView组件在一些场景下(例如加载更多)容易引起页面卡顿,看到了闲鱼的Flutter 高性能.多功能的全场景滚动容器.但奈 ...

  5. linux nmon 进程io,Linux服务器用iotop命令分析服务器磁盘IO情况

    Linux下的IO统计工具如iostat, nmon等大多数是只能统计到per设备的读写情况, 如果你想知道每个进程是如何使用IO的就比较麻烦. 如果会systemtap, 或者blktrace这些事 ...

  6. MySQL优化原理分析及优化方案总结

    前言 今天中午收到我司安全部发了一封邮件:Jackson存在安全漏洞.查了一下,这件事并不算很新鲜了(已经过了5天的样子),本文来聊聊吧. 说起来还蛮戏剧化:阿里云向Jackson官方提交了一个Jac ...

  7. Mysql占用CPU过高排查过程及可能优化方案

    1.查看生产DB服务器top列表, 执行 top 命令 2.使用root用户登录mysql 执行 show full processlist 查看慢查询,反复执行,如果发现一直有select 查询语句 ...

  8. Android 系统性能优化(30)---Android性能全面分析与优化方案研究

    Android 性能优化 1.结合以下四个部分讲解: 性能问题分类 性能优化原则和方法 借助性能优化工具分析解决问题 性能优化指标 2性能问题分类 1.渲染问题:过度绘制.布局冗杂 2.内存问题:内存 ...

  9. 几乎是史上最全最实用的Android性能全面分析与优化方案研究

    结合以下四个部分讲解: 性能问题分类 性能优化原则和方法 借助性能优化工具分析解决问题 性能优化指标 性能问题分类 1.渲染问题: 过度绘制.布局冗杂 2.内存问题: 内存浪费(内存管理).内存泄漏 ...

最新文章

  1. 数据行业非完全入门指南!
  2. Ten ways to improve the performance of large tables in MySQL--转载
  3. Shell中的for循环
  4. 读《程序是怎样跑起来》第五章有感
  5. java抽象类实现接口可以不用实现方法
  6. 谷歌浏览器中安装JsonView扩展程序
  7. Ubuntu下搭建Janus Server
  8. NAS优缺点完全剖析
  9. 分布式查询处理和优化相关知识介绍
  10. CoreCLR文档翻译 - GC的设计
  11. mysql表 spid program_SQL Server 表,记录 死锁解决办法
  12. 【Java并发编程】—–“J.U.C”:ArrayBlockingQueue
  13. 触屏touch事件记录
  14. 【转】Delphi7程序调用C#写的DLL解决办法
  15. hmcl手机版_hmcl启动器整合包安卓版下载-我的世界hmcl启动器安卓版v1.17.10最新版_新绿资源网...
  16. 操作系统引导-----QEMU环境下制作boot引导程序
  17. QT的Q3DScatter使用(三维可视图)
  18. php元换成万元,元换算成万元换算器(元与万元的换算器)
  19. 阿诺医药C轮融资近1亿美元,快速推进肿瘤免疫创新药全球研发
  20. mysql nfs存储_NFS存储服务及部署

热门文章

  1. java ntpudpclient_Java代码获取NTP服务器时间
  2. Linux7改运行级别,Centos7 修改运行级别
  3. 切片分析报告格式_疫情舆情分析研判报告怎么撰写?2020舆情报告格式
  4. python3中的dict循环性能对比
  5. 时间特征构图案例及节点之间的多重关系
  6. TfidfVectorizer中的参数norm默认值是l2
  7. mysql show schema_快速入门 · xiaoboluo768/mysql-system-schema Wiki · GitHub
  8. 范围管理6个过程及相关重点
  9. PMP知识点(三、范围管理)
  10. window.location跳转页面