暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Linux系统IO负载情况的查询和案例分析

原创 watson 2023-01-25
2381

概述

本文主要对Linux系统IO负载情况的查询和案例分析进行说明。

 

详细信息 

IO负载的查询与分析

使用iostat从系统纬度查看磁盘IO负载

iostat并非常见Linux发行版本自带工具,其包含在sysstat软件包中,需要先通过yum或apt-get等方式进行安装后才能使用。具体安装方法本文不再详述。

 用法说明

执行如下命令,查看磁盘IO负载。

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_wrtn
xvda 0.58 0.12 3.75 278001 8820028
xvdb 0.00 0.00 0.00 740 0
xvdc 0.00 0.00 0.00 1388 0
xvde 0.00 0.00 0.00 2035 0
xvdf 0.00 0.00 0.00 740 0

提示:更多参数及返回结果说明,可以参阅iostat的man帮助。 

使用iotop从进程纬度查看磁盘IO负载

iotop也并非常见Linux发行版本自带工具,也需要先通过yum或apt-get等方式进行安装后才能使用。具体安装方法本文不再详述。

提示:可以通过iotop从进程维度对系统内进程的IO使用情况进行排序。 

用法说明

执行iotop命令,可以看到类似以下界面。

 

系统显示说明
  • 默认情况下按照IO使用量倒序排序,可以用左右箭头操作排序的字段。
  • 按r切换排序方式。
  • 按o只显示有磁盘IO活动的进程。
  • 更多参数及返回结果说明,可以参阅iotop的man帮助。

 IO负载相关操作案例

kjournald进程占用IO资源高问题

问题描述

使用iotop排查分析,发现kjournald进程占用了大量IO资源。 

问题原因

kjournald进程是ext3文件系统进行IO数据操作的内核进程,它会在向磁盘内写入和读取数据时占用CPU和内存资源。该问题通常是由于ext3文件系统循环的写数据,Journal size不断增大,进而占满导致。 

处理办法

执行如下命令,通过dumpe2fs指令查看相应分区的Journal size配置情况,然后尝试调大该值,看问题是否缓解。

dumpe2fs /dev/xvda1 | grep Journal

系统显示类似如下。

dumpe2fs 1.42.9 (28-Dec-2013)
Journal inode: 8
Journal backup: inode blocks
Journal features: journal_incompat_revoke
Journal size: 128M
Journal length: 32768
Journal sequence: 0x00010ffb
Journal start: 10953 

通过4K对齐提高IO性能

本节主要介绍如何通过如下脚本对磁盘进行格式化并自动配置4K对齐。

  1. 将如下压缩包解压,将解压后脚本并上传到目标服务器。
    auto_fdisk.zip
  2. 进入脚本所在目录,使用root用户,依次执行如下命令,给脚本添加执行权限,然后运行脚本即可。

    chmod +x ./auto_fdisk.sh
    ./auto_fdisk.sh
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论