Linux系统 磁盘IO过高排查总结
最近做的一个电商网站因为磁盘 I/O 过高导致访问速度奇慢,问题存在两个月有余未得到解决办法。此次排查原因的经验可以作下次问题的参考。
1、会看懂 top 系统命令出来的各项参数。此次是无意中发现 us% 正常,但是 wa% 很高,才得知是系统磁盘的 I/O 过高导致网站访问慢。
2、会安装和使用监控应用。iotop、pt-ioprofile等工具,都是有助于分析问题所在的应用。借助这些工具,最终定位是MySQL的原因。
3、会用MySQL常用的分析命令。一开始认为分配给MySQL的内存不够,一直在调试MySQL的参数以期可以改善I/O,但是发现这个方向是错误的。
(1)应该先使用 "show processlist",查看MySQL中有哪些线程在跑,最明显要注意哪些sql语句跑了很久还没执行完,"Time"那一列的单位是秒(s),所以这一列的数字上了30都是挺大的性能问题,要关注慢查询了。正是用这个命令,发现了一条sql语句经常执行了几百上千秒还没结束,而且一旦开始执行,I/O就非常高,一旦kill掉这个线程,I/O马上恢复正常,问题的症结就找到了。
(2)还有一个是 "show engine innodb status \G",这个输出的数据是归纳数据库引擎的运行情况的数据,结合上面的命令会更有参考价值。比如死锁(deadlock),因为磁盘 I/O 过高,sql语句很长时间执行不完,会造成数据发生死锁(大概是这么理解)。
(3)MySQL的参数优化也是需要的,安装好的MySQL配置都是默认的,效率比较低,不过这次的问题跟优化没有必然联系,因为之前的项目都没有优化过MySQL。
参考文章:https://blog.csdn.net/zimeng0/article/details/68066146
jdb2导致的IO率过高
http://www.bubuko.com/infodetail-971804.html
https://serverfault.com/questions/363355/io-wait-causing-so-much-slowdown-ext4-jdb2-at-99-io-during-mysql-commit
什么导致MySQL数据库服务器磁盘I/O高?
http://www.xtrdb.net/mysql/MySQL-io-%E8%B0%83%E4%BC%98/
MySQL InnoDB磁盘I/O优化
http://www.ywnds.com/?p=9452
查看磁盘的文件系统
https://blog.csdn.net/lzjsqn/article/details/72059035
IO负载高的来源定位
https://www.cnblogs.com/legendbaby/p/5056967.html
拥有相似问题的解决方案
https://www.jianshu.com/p/36151e44b671
MySQL · 特性分析 · (deleted) 临时空间
http://mysql.taobao.org/monthly/2018/04/08/
Linux系统 磁盘IO过高排查总结的更多相关文章
- 磁盘IO过高时的处理办法 针对系统中磁盘IO负载过高的指导性操作
磁盘IO过高时的处理办法 针对系统中磁盘IO负载过高的指导性操作 主要命令:echo deadline > /sys/block/sda/queue/scheduler 注:以下的内容仅是提供参 ...
- linux 系统磁盘管理体系
目录 linux 系统磁盘管理体系 一.磁盘的基本概念 二.磁盘的内部结构 三.磁盘的外部结构 四.磁盘的接口及类型 五.fdisk磁盘分区实践 六.gdisk 分区 七.parted 高级分区工具. ...
- win10系统磁盘占用率高的解决方法,占用100%的问题
win10系统开机后明明什么都没做,磁盘占用率却只见飙升到了100%,出现这种情况是win10自带的服务导致的.下面的方法可以解决win10系统磁盘占用率高问题. 1.按下Win+R,然后输入serv ...
- Linux系统磁盘分区、删除分区、格式化、挂载、卸载、开机自动挂载的方法总结
Linux系统按照MBR(Master Boot Record)传统分区模式: 注意:传统的MBR(Master Boot Record)分区方式最大只能分2T容量的硬盘,超过2T的硬盘一般采用GPT ...
- linux 系统磁盘管理(主分区和逻辑分区)
摘要:linux系统磁盘管理主分区和逻辑分区 1.linux系统分区应了解的常识 硬盘分区实质上是对硬盘的一种格式化,然后才能使用硬盘保存各种信息,在创建分区时,就已经设置好了硬盘的各项物理参数,指定 ...
- linux 磁盘io利用率高,分析的正确姿势
一.背景简介 作为一个DBA难免不了会遇到性能问题,那么我们遇到性能问题该如何进行排查呢?例如我们在高并发的业务下,出现业务响应慢,处理时间长我们又该如何入手进行排查,本片文章将分析io高的情况下如何 ...
- Linux 查看磁盘IO并找出占用IO读写很高的进程
背景-线上告警 线上一台服务器告警,磁盘利用率 disk.util > 90,并持续告警. 登录该服务器后通过 iostat -x 1 10 查看了相关磁盘使用信息.相关截图如下: # 如果没有 ...
- linux查看磁盘io的几种方法
怎样才能快速的定位到并发高是由于磁盘io开销大呢?可以通过三种方式: 第一种:用 top 命令 中的cpu 信息观察 Top可以看到的cpu信息有: Tasks: 29 total, 1 runnin ...
- 磁盘IO过高时的处理办法
针对系统中磁盘IO负载过高的指导性操作 主要命令:echo deadline > /sys/block/sda/queue/scheduler 注:以下的内容仅是提供参考,如果磁盘IO确实比较大 ...
随机推荐
- 刷榜中ASO优化中下载量与评论之间的对应比
刷榜中ASO优化中下载量与评论之间是怎么样对应,我们都知道,在ASO优化的过程中,ASO优化师在做下载量后的二至三天,都会顺带着做一下评论.这时候问题就来了,下载量与评论的比例关系应该如何确定呢?最近 ...
- python 函数enumerate(x,y)的用法
enumerate(x,y)函数是把元组tuple.字符串str.列表list里面的元素遍历和索引组合,其用法与range()函数很相似, 下面示例enumerate(x,y)用法以及range(x) ...
- Linux 的umask详解
1.由权限得到umask的值 umask是一个系统变量,是一个由3个八进制数字组成的值,具体含义见表:每个数字都是八进制值1.2.4的OR操作结果. 作用:当文件被创建时,为文件的访问权限设定一个掩码 ...
- RedHat Enterprise Linux 6.4使用网易Centos 6 的yum源
1.首先到http://mirrors.163.com/centos下载软件包 x86 地址:http://mirrors.163.com/centos/6/os/i386/Packages/ x86 ...
- 405 Method Not Allowed error with PUT or DELETE Request on IIS Server
昨天手贱去一台服务器上装了Webdav. 一开始以为这个报错是跨域问题, 最近一直遇到用自动的publish发布到FTP出问题也就没想到是Webdav的问题 而且这东西装了还不能删除 处理办法 IIS ...
- jupyter notebook 动态图显示
直接在import matplotlib.pyplot as plt 后面加%matplotlib,或者%matplotlib auto就可以通过弹出窗口的形式显示图片
- jQuery动画方法
下面介绍一些使用jQuery实现动画的方法: html中有如下代码: <button id="btn-box1">show</button> <but ...
- web_app框架
web app 建立在asyncio的基础上,因此用aiohttp写一个基本的app.py import logging; logging.basicConfig(level=logging.INFO ...
- asp.net导入后台代码
public void Upload(string information){ int Bank = 0; for (int i = 0; i <Request.Files.Count; i++ ...
- Debian setup the time
sudo gedit /etc/default/hwclock将 井HWCLOCKACCESS=yes 和 井HCTOSYS_DEVICE=rtc0 前的 井 符号去掉,再改 rtc0 为 rtc1 ...