云服务器 ECS Linux IO 占用高问题排查方法
https://help.aliyun.com/knowledge_detail/41224.html?spm=5176.7841174.2.19.uqC1as#使用 iostat 从系统纬度查看磁盘 IO 负载
IO 负载查看方法
使用 iostat 从系统纬度查看磁盘 IO 负载
可以通过 iostat 从系统维度查看 IO 负载情况。
iostat 并非常见 Linux 发行版本自带工具,其包含在 sysstat 软件包中,需要先通过 yum 或 apt-get 等方式进行安装后才能使用。 具体安装方法本文不再详述。
用法说明:
示例用法:iostat -d -k 2# -d 表示,显示设备(磁盘)使用状态。# -k 表示让某些使用 block 为单位的列强制使用 kB 为单位。# 2表示,数据显示每隔2秒刷新一次。示例输出:Linux 3.10.0-123.9.3.el7.x8664 (centos) 06/27/2016 _x86_64 (1 CPU)Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtnxvda 0.58 0.12 3.75 278001 8820028xvdb 0.00 0.00 0.00 740 0xvdc 0.00 0.00 0.00 1388 0xvde 0.00 0.00 0.00 2035 0xvdf 0.00 0.00 0.00 740 0
更多参数及返回结果说明,可以参阅 iostat 的 man 帮助。
使用 iotop 从进程纬度查看磁盘 IO 负载
也可以通过 iotop 从进程维度对系统内进程的 IO 使用情况进行排序。
iotop 也并非常见 Linux 发行版本自带工具,也需要先通过 yum 或 apt-get 等方式进行安装后才能使用。 具体安装方法本文不再详述。
用法说明:
直接使用指令 iotop 运行后,可以看到类似以下界面:

回显说明:
- 默认情况下按照 IO 使用量倒序排序,可以用左右箭头操作排序的字段。
- 按 r 切换排序方式。
- 按 o 只显示有磁盘 IO 活动的进程。
- 更多参数及返回结果说明,可以参阅 iotop 的 man 帮助。
操作案例
kjournald 进程占用 IO 资源高问题
- 问题描述:
使用 iotop 排查分析,发现 kjournald 进程占用了大量 IO 资源。 - 处理办法:
kjournald 进程是 ext3 文件系统进行 IO 数据操作的内核进程,?它会在向磁盘内写入和读取数据时占用 CPU 和 内存资源。
该问题通常是由于 ext3 文件系统循环的写数据,导致 Journal size 不断增大,进而占满导致。
可以通过 dumpe2fs 指令查看相应分区的 Journal size 配置情况,然后尝试调大该值,看问题是否缓解。查询方法如下所示:$ dumpe2fs /dev/xvda1 | grep Journaldumpe2fs 1.42.9 (28-Dec-2013)Journal inode: 8Journal backup: inode blocksJournal features: journal_incompat_revokeJournal size: 128MJournal length: 32768Journal sequence: 0x00010ffbJournal start: 10953
[root@localhost ~]# dumpe2fs /dev/sda1
dumpe2fs 1.39 (29-May-2006)
Filesystem volume name: /boot
Last mounted on: <not available>
Filesystem UUID: 62eed73c-4f24-4250-a69a-2643755cba8a
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 76304
Block count: 305200
Reserved block count: 15260
Free blocks: 272556
Free inodes: 76265
First block: 1
Block size: 1024
Fragment size: 1024
Reserved GDT blocks: 256
Blocks per group: 8192
Fragments per group: 8192
Inodes per group: 2008
Inode blocks per group: 251
Filesystem created: Mon Jun 29 17:30:27 2015
Last mount time: Mon Jul 18 22:44:31 2016
Last write time: Mon Jul 18 22:44:31 2016
Mount count: 143
Maximum mount count: -1
Last checked: Mon Jun 29 17:30:27 2015
Check interval: 0 (<none>)
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 128
Journal inode: 8
Default directory hash: tea
Directory Hash Seed: 885973fc-263b-466d-8498-e427b59d511a
Journal backup: inode blocks
Journal size: 8M
。。。
通过 4K 对齐提高 IO 性能
可以通过如下脚本对磁盘进行格式化并自动配置 4K 对齐。
注意:运行此脚本会自动格式化所有数据盘磁盘。如果并非新购磁盘,请在操作前,务必确认已经完成相关磁盘上的数据备份。可以通过快照进行磁盘的备份,操作方法可以参阅创建快照。
- 下载脚本 auto_fdisk.zip。
- 解压 auto_fdisk.zip 后,将相应脚本上传到目标服务器。
- 通过 chmod +x 等指令,为脚本添加执行权限。
- 以root身份,通过如下方式为脚本添加执行权限,然后运行即可:
chmod +x ./auto_fdisk.sh./auto_fdisk.sh
云服务器 ECS Linux IO 占用高问题排查方法的更多相关文章
- 云服务器 ECS Linux Web 环境配置站点的方法
摘自:https://help.aliyun.com/knowledge_detail/41100.html ECS Linux 系统一键安装 Web 环境<专业版>下 Tomcat 添加 ...
- 云服务器 ECS Linux 系统 CPU 占用率较高问题排查思路
https://help.aliyun.com/knowledge_detail/41225.html?spm=5176.7841174.2.2.ifP9Sc 注意:本文相关配置及说明已在 CentO ...
- 云服务器 ECS Linux 磁盘空间满(含 innode 满)问题排查方法
问题描述 在云服务器 ECS Linux 系统内创建文件时,出现类似如下空间不足提示: No space left on device … 问题原因 导致该问题的可能原因包括: 磁盘分区空间使用率达到 ...
- 云服务器 ECS Linux 系统添加“回收站”
删除是危险系数很高的操作,一旦误删可能会造成难以估计的损失.在云服务器 ECS Linux 系统中这种危险尤为明显.比如,一条简单的语句:rm –rf /* 就会把整个系统全部删除,而 Linux 并 ...
- 云服务器 ECS Linux 系统盘数据转移方法
转自:https://help.aliyun.com/knowledge_detail/41400.html 问题描述 购买云服务器 ECS Linux 服务器时,未购买数据盘,使用一段时间后,随着业 ...
- 云服务器 ECS Linux 误删除文件恢复方法介绍
云服务器 ECS Linux 下,rm -rf 意味着一旦删除的文件是无法挽回的.但如果在没有文件覆盖操作的前提下,可以先尝试相关方式进行文件恢复. 本文对此进行简要说明. https://help ...
- 云服务器 ECS Linux 系统中常见的日志文件介绍
云服务器 ECS Linux 系统中,日志文件是非常重要的文件,它们记录了很多系统中重要的事.Linux 系统中常见日志文件概述如下: /var/log/cron可以在 cron 文件中检查 cron ...
- 云服务器 ECS Linux 服务器修改时区的两种方式
在云服务器 ECS Linux 系统中,以 Centos6.5 为例,可以通过如下两种方式,修改系统时区: 可以使用命令 tzselect,修改时区.操作示例: [root@localhost ~]# ...
- 云服务器 ECS Linux 修改编码格式
https://help.aliyun.com/knowledge_detail/41424.html?spm=5176.7841174.2.19.Le8kvy 通常情况下,云服务器 ECS Linu ...
随机推荐
- Android学习之散乱的知识点
1. 安卓广告知名平台:有米,哇棒,架势,admob(国外,但效果不好)等,推荐用有米 2. src目录为源文件目录,所有可以被用户修改和创建的Java文件将被存放在这个目录下 3. xml中引用st ...
- jQuery Mobile 页面事件总结
一.页面初始化事件(Page initiallization) 在页面创建前,当页面创建时,以及在页面初始化之后.只在第一次加载时执行. 1. pagebeforecreate 页面创建前 [sour ...
- js遇到这样基础题,看你能不能作对呢
var a = (function() { return typeof arguments; })(); alert(a); //Object var b = (function(x) { delet ...
- 【转】从零开始编写自己的C#框架(7)——需求分析
转自:http://www.cnblogs.com/EmptyFS/p/3653934.html 本章内容虽然叫“需求分析”,实际上关于具体的需求分析操作步骤并没有深入去写,因为细化的话那将是一本厚厚 ...
- 第三百二十九天 how can I 坚持
今天莫名其妙的烦,,都是上午搞电脑搞的,好乱,心情很差,又感觉有那么多事. 希望周六不要加班啊.很烦,不想加班. 貌似事情也不是很多.但是为什么会感觉乱七八糟的呢,力不从心的感觉,是能力不行吗. 晚上 ...
- windows平台下安装python的setuptools工具
到下面的网址下载setuptools-0.6c11.win32-py2.7.exe http://pypi.python.org/pypi/setuptools#files 然后安装setuptool ...
- 我的第一个CUDA程序
最近在学习CUDA框架,折腾了一个多月终于把CUDA安装完毕,现在终于跑通了自己的一个CUDA的Hello world程序,值得欣喜~ 首先,关于CUDA的初始化,代码和解释如下,这部分主要参考GXW ...
- HD2058The sum problem
The sum problem Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tot ...
- 从输入一个URL到页面呈现,网络上都发生了什么?
归纳一下其中涉及到前端的一些基础知识,主要包括:http协议.web标准.w3c标准等. 这个问题虽然只有两个2个动作:输入URL和呈现页面,但这背后发生了很多"有趣" ...
- 做 fzu oj 1106 题目学到的
题目如下 这道题的意识就是给一个数问是否可以又阶乘之和构成,而难点主要是在于如果是7的话就是1!+3!,并不是单纯的从1的阶乘开始加,而是没顺序的,所以这题就得用到递归. (大概就是函数自己调用函数自 ...