mysql io过高
背景:
晚上,公司业务群里发信息说,有玩家在游戏里面赠送别人礼物后,赠送记录在20多分钟以后才出现,延时太高。
问题:
公司数据库使用mysql,配置了主从。配置的是,游戏程序写数据到主库,读数据到从库。
数据库服务器主:A
数据库服务器从:B
1.首先查看了A主上面的赠送记录的库,发现都是正常的。然后查看B从上面赠送记录的库,发现有几个表没有通过过来。
2.在B从上面查看,从数据库是否正常: show slave status\G;发现如下问题:

根据上面圈出来的参数发现:主从存在延迟,主库执行到了mysql-bin-000077,而从库才执行到mysql-bin-000070,也可以从执行的位置,上面两个_POS看出来有延迟,根据Seconds_Behind_Master发现,大约有365360的延迟。
由上面分析可以发现,从库B虽然已经从主库拉取了所有的binlog,但是执行却没有完成。
show processlist;发现Slave_SQL线程处于:Reading event from the relay log.
经查找发现:由于主库可以并发执行,而从库只有一个slave_sql线程来进行执行,所以当事务多的时候,从库来不及处理就会出现以上情况。
查找是哪些资源到了瓶颈:
top发现,loadavg平均在1.7左右,内存,cpu都没有异常。cpu行中的wa%却有些偏高。'状态列'有一个程序处于D状态,即不可终端的睡眠。状态D,一般是由于wait IO造成的所谓“非中断睡眠”。
用iostat, $iostat -x 1 10 发现IO utils%一直出于70%-99%之间,发现是系统IO达到了瓶颈。
用iotop查看是哪些进程在频繁的进行IO操作,发现是mysqld和jdb2/dm-2-8
进行相关的优化:
由于主数据库上面也有IO瓶颈,同样是上面两个进程。
进入mysql查看show processlist,发现有1500多个任务,大部分处于sleep状态。(发现了之前公司业务发的,有些玩家登录不上游戏的原因,( ╯□╰ )),mysql配置中,max_connection最大连接数设置的才只有2000,所以很容易到达,然后满了后玩家就进不来了。
对于sleep任务太多的处理:(1)程序里每次连接数据库后,记得关闭数据库。(2)或者,在mysql配置文件中,设置mysql超时时间wait_timout,默认是八小时,设置低一点。
mysql io过高的更多相关文章
- iotop,pt-ioprofile : mysql IO负载高的来源定位
http://www.cnblogs.com/cenalulu/archive/2013/04/12/3016714.html 前言: 在一般运维工作中经常会遇到这么一个场景,服务器的IO负载很高(i ...
- MYSQL的硬盘IO过高引起的CPU过高判断
其实,为客户提供相关日志,不就是RACKSPACE主要作的事? 俺们以后也可以效仿的.不要去解决,而是协助客户定位. http://blog.const.net.cn/a/17275.htm 上文的思 ...
- MySQL占用IO过高解决方案【转】
1.日志产生的性能影响: 由于日志的记录带来的直接性能损耗就是数据库系统中最为昂贵的IO资源.MySQL的日志包括错误日志(ErrorLog),更新日志(UpdateLog),二进制日志(Binlog ...
- MySQL数据库的优化(下)MySQL数据库的高可用架构方案
MySQL数据库的优化(下)MySQL数据库的高可用架构方案 2011-03-09 08:53 抚琴煮酒 51CTO 字号:T | T 在上一篇MySQL数据库的优化中,我们跟随笔者学习了单机MySQ ...
- IO负载高的来源定位
前言: 在一般运维工作中经常会遇到这么一个场景,服务器的IO负载很高(iostat中的util),但是无法快速的定位到IO负载的来源进程和来源文件导致无法进行相应的策略来解决问题. 这个现象在MySQ ...
- IO负载高的来源定位 IO系列
http://elf8848.iteye.com/category/281637 前言: 在一般运维工作中经常会遇到这么一个场景,服务器的IO负载很高(iostat中的util),但是无法快速的定位到 ...
- 浅谈mysql主从复制的高可用解决方案
1.熟悉几个组件(部分摘自网络)1.1.drbd —— DRBD(Distributed Replicated Block Device),DRBD号称是 "网络 RAID" ...
- Linux系统 磁盘IO过高排查总结
最近做的一个电商网站因为磁盘 I/O 过高导致访问速度奇慢,问题存在两个月有余未得到解决办法.此次排查原因的经验可以作下次问题的参考. 1.会看懂 top 系统命令出来的各项参数.此次是无意中发现 u ...
- mysql服务器iowait高优化一例完整深入解析
我们有一服务器,上面运行着两个mysql实例,这几天iowait一直很高,在20-30%,下午特地专门排查和解决了下,相关过程整理如下. 该服务器有两个挂载盘,服务器在阿里云上,一个系统盘,一个数据盘 ...
随机推荐
- [转]C#算法题
1:不允许使用循环语句.条件语句,在控制台中打印出1-200这200个数. 参考答案:这里我使用的是递归. static void Main(string[] args) { Print(); Con ...
- (转)linux内存源码分析 - 内存回收(lru链表)
原文:http://www.cnblogs.com/tolimit/p/5447448.html 概述 对于整个内存回收来说,lru链表是关键中的关键,实际上整个内存回收,做的事情就是处理lru链表的 ...
- (转)【MySQL】sync_binlog innodb_flush_log_at_trx_commit 浅析
原文:http://blog.itpub.net/22664653/viewspace-1063134/ innodb_flush_log_at_trx_commit和sync_binlog 两个参 ...
- Java学习之路(四):面向对象
Java中的面向对象 概念:面向对象的原本的意思是“”万物皆对象“” 面向对象思想的特点: 是一种更符合我们思想习惯的思想,将复杂的事情简单化 使我们角色发生了转换,将我们从执行者变成了指挥者 面向对 ...
- HDFS HA和Federaion
1.HA HA即为High Availability,用于解决NameNode单点故障问题,该特性通过热备的方式为主NameNode提供一个备用者,一旦主NameNode出现故障,可以迅速切换至备Na ...
- 带双反斜杠的Json数据至单反斜杠的Json数据处理
假如你光看标题,你只能哦呵呵了!我也看不懂.还是先描述下问题吧.这里是使用微信接口返回了一些数据.因为该串数据包含html标签所以TX是对该串数据进行了编码的.所有的数据是通过Unicode编码的,然 ...
- HTML5在线状态检测和DOM Storage
除了离线资源缓存外,html5离线应用开发还可能用到以下技术 在线状态检测 navigator.onLine navigator.onLine 属性表示当前是否在线.如果为 true, 表示在线:如果 ...
- div 移动
2011-05-12 10:10 jquery实现DIV层拖动 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//E ...
- sqlite、mysql 将时间戳转换成本地时间语句
sqlite:SELECT datetime(createdTime, 'unixepoch', 'localtime'); mysql:SELECT FROM_UNIXTIME( 124948800 ...
- 实现 如 goole closure 类似功能模块加载函数
看过goole closure 的同学都知道 其中定义一个类名函数时候只要 inlude("") 想加载某个模块只要require("")就可以利用: ...