• Linux系统如何查找磁盘I/O读写过高的进程?


    首先,模拟磁盘I/O读写高的情况

    # 拷贝大文件进行测试
    [root@proxy1 ~]# cp -rp /mnt/cdrom/ /tmp/
    

    1、通过"iostat -x 1 10"命令查看相关磁盘使用信息

    表示每隔1秒刷新一次,刷新10次

    如果没有iostat命令,使用yum -y install sysstat安装

    由图可知scd0也就是被拷贝的磁盘的%util几乎超过了100%,原因就是频繁的读取数据造成的;

    字段说明

    Device	# 设备名称
    tps		# 每秒的IO读、写请求数量,多个逻辑请求可以组合对设备的单个I/O请求;
    Blk_read/s	#从设备读取的数据量,以每秒若干块(千字节、兆字节)表示;块相当于扇区,块大小为512字节
    Blk_wrtn/s	#写入设备的数据量,以每秒若干块表示;
    Blk_read	#读取块的总数(千字节、兆字节)
    Blk_wrtn	#写入块的总数(千字节、兆字节)
    
    rrqm/s		#每秒合并到设备的读请求数;
    wrqm/s		#每秒合并到设备的写入请求数;
    r/s			#每秒完成的读I/O设备次数;
    w/s			#每秒完成的写I/O设备次数;
    rsec/s(rkB/s,rMB/s)		#每秒读取设备的扇区数,每扇区大小为512字节;
    wsec/s(wkB/s,wMB/s)		#每秒写入设备的扇区数,每扇区大小为512字节;
    
    avgrq-sz	#平均每次设备I/O操作的数据量(扇区为单位);
    abgqu-sz	#平均每次发送给设备的I/O队列长度
    await		#平均每次I/O请求等待时间(包括等待队列时间和处理时间,毫秒为单位)
    r_await		#平均每次I/O读请求等待时间;
    w_await		#平均每次I/O写请求等待时间;
    svctm		#平均每次设备I/O操作的处理时间(毫秒);
    %util		#一秒中有百分之多少的时间用于I/O操作,当该值接近100%,设备饱和发生;
    

    2、通过"iotop"命令

    如果没有该命令,使用yum -y install iotop命令进行安装

    通过这个命令可以看见比较详细的信息,如:进程号、磁盘读取量、磁盘写入量、I/O百分比,以及命令等;

    3、通过"pidstat"命令

    命令的含义:展示I/O统计,每秒更新一次;

    pidstat -d 1
    

    作者:ccku
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如有问题或建议,请多多赐教,非常感谢。
  • 相关阅读:
    linux查看公网ip的方法
    统计文件或文件夹个数
    python manage.py shell
    炒冷饭,对于数据库“删除”操作大家平时都是物理删除,还是逻辑删除啊?
    SQL表名,应该用表对应资源对象的复数形式还是单数形式
    git常用命令
    Django ORM中的模糊查询
    threading 学习笔记
    class类笔记整理
    函数笔记整理
  • 原文地址:https://www.cnblogs.com/ccku/p/13938489.html
Copyright © 2020-2023  润新知