设为首页 加入收藏

TOP

linux-磁盘io监控相关工具整理(一)
2023-07-23 13:37:57 】 浏览:79
Tags:linux- 磁盘 相关工

常见的io监控工具包括iostat、iotop,这里从工具的安装、使用、优缺点进行分析,并给出目前缺少的监控工具


 1 iostat

  • 功能:用于报告CPU(中央处理器)统计信息和整个系统、适配器、tty设备、磁盘和CD-ROM的输入/输出统计信息;通过观察设备处于活动状态的时间(相对于其平均传输速率)来整理实时报告输出 ,主要用于监视nfs网络文件系统和本地文件系统。
  • 参数详解:
    • iostat [ -c | -d ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ device [ ... ] | ALL ] [ -p [ device | ALL ] ] [ interval [ count ] ]
    • -c: 仅显示CPU统计信息.与-d选项互斥.
    • -d:仅显示磁盘统计信息.与-c选项互斥.
    • -k:以K为单位显示每秒的磁盘请求数,默认单位块.
    • -m: 以M为单位显示每秒的磁盘请求数
    • -p:device | ALL,与-x选项互斥,用于显示块设备及系统分区的统计信息.也可以在-p后指定一个设备名,如:# iostat -p hda 或显示所有设备# iostat -p ALL
    • -t : 在输出数据时,打印搜集数据的时间.
    • -V: 打印版本号和帮助信息.
    • -x : 输出扩展信息
  • 输出
    • 输出分为avg-cpu段和Device段
  • 常用命令
    • iostat -xm 1 : 每秒输出一次cpu&device信息
    • iostat -c  1 2 : 每秒输出一次cpu信息,总共输出2次
    • iostat -d 2 : 间隔2秒输出一次device信息
    • iostat -xm 1 /dev/sdb : 每秒输出1次sdb的device信息和cpu信息
    • iostat -p /dev/sdb -d 1 2 : 每秒输出一次sdb的分区的设备信息,总共输出2次
  • 注意事项
    • util代表磁盘使用率,对于hdd,使用率达到100%代表已经达到磁盘瓶颈,但对于ssd并不代表已经达到瓶颈,因为util是按照(svctm*(r/s+w/s))/1000,对于ssd因为有并发,所以达到100%只能说明单通道达到了100%
  • 参考来源:(23条消息) 优化命令iostat详解_灌南第一帅的博客-CSDN博客_iostat命令详解参数

2 sar

  • 功能:系统维护的重要工具,主要帮助我们掌握系统资源的使用情况,特别是内存和CPU 的使用情况,是UNIX系统使用者应该掌握的工具之一
  • 参数详解:
    • sar [options] [-A] [-o file] t [n]
    • 在命令行中,n 和t 两个参数组合起来定义采样间隔和次数,t为采样间隔,是必须有的参数,n为采样次数,是可选的,默认值是1,-o file表示将命令结果以二进制格式存放在文件中,file 在此处不是关键字,是文件名。options 为命令行选项
    • -A:所有报告的总和。
    • -u:CPU利用率
    • -v:进程、I节点、文件和锁表状态。
    • -d:硬盘使用报告。
    • -r:没有使用的内存页面和硬盘块。
    • -g:串口I/O的情况。
    • -b:缓冲区使用情况。
    • -a:文件读写情况。
    • -c:系统调用情况。
    • -R:进程的活动情况。
    • -y:终端设备活动情况
    • -w:系统交换活动。
    • -p: 打印出设备名称,不加输出的是设备节点,如dev8-0
    • -n: 某个端口设备的网络状态
    • sar -d -v  -R
  • 输出:
      • DEV: 网卡/EDEV: 网卡(错误) 

      • NFS/NFSD/SOCK/IP/EIP/ICMP/EICMP/TCP/ETCP/UDP/SOCK6/IP6/EIP6/ICMP6/EICMP6/UDP6
  • 常用命令:
    • sar -d 1 : 间隔1s输出一次设备情况
    • sar -u 1 10 : 间隔1s输出一次cpu使用情况,总共输出10次
    • sar -d -f /var/log/sa/sa03 -p|grep -E "DEV|sd" : 从文件sa03中过滤出磁盘信息(sa03代表3号,最多保存一个月的日志)
    • sar -r 1 10 -o mem.log : 将内存信息每秒打印一次,总共打印10s,并将结果输出到mem.log中
    • sar -v 1 3 :  监控目前系统中的资源使用情况
  • 参考链接:

 3 iotop

  • 功能:一个类似 top 的工具,用来显示实时的磁盘活动。Linux下的IO统计工具如iostat,nmon等大多数是只能统计到per设备的读写情况。iotop 监控 Linux 内核输出的 I/O 使用信息,并且显示一个系统中进程或线程的当前 I/O 使用情况。它显示每个进程/线程读写 I/O 带宽。它同样显示当等待换入和等待 I/O 的线程/进程花费的时间的百分比。它是一款开源、免费的用来监控磁盘I/O使用状况的类似top命令的工具,iotop可以监控进程的I/O信息。它是Python语言编写的,与iostat工具比较,iostat是系统级别的IO监控,而iotop是进程级别IO监控。
  • 参数:
    • -o:只显示有io操作的进程
    • -b:批量显示,无交互,主要用作记录到文件。
    • -n NUM:显示NUM次,主要用于非交互式模式。
    • -d SEC:间隔SEC秒显示一次。
    • -p PID:监控的进程pid。
    • -u USER:监控的进程用户
    • -P :只显示进程,不显示线程
    • -a :显示累计的io(从iotop启动)
    • -k : 以KB为单位显示
    • -t : 非交互模式下,显示时间
    • -q: 只在第一次监测时显示列名. 去除头部一些行:这个参数可以设置最多3次来移除头部行:-q列头部只在最初交互显示一次;-qq列头部不显示;-qqq,I/O的总结不显示

 4 top

  • 功能:监视进程和Linux整体性能的工具,所有用户可使用
  • 参数:
    • top [-] [d delay] [q] [c] [S] [s] [n]
    • d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s
    • q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限则 top 将会以最高的优先序执行
    • c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称
    • S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来
    • s : 安全模式,将交谈式指令取消, 避免潜在的危机
    • i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程
    • n : 更新的次数,完成后将会退出 top
    • b : 批次档模式,搭配 “n” 参数一起使用,可以用来将 top 的结果输出到档案内
    • 1 :交互界面中输入数字1,可查看每个cpu的情况
    • b : 交互界面中输入字母b,可高亮显示当前运行进程
  • 输出:
  • 常用命令:
    • top 然后在交互中输入i(仅活跃的进程),然后输入1(查看每个cpu的情况),然后输入b(高亮显示)

 5 vm

首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇自动化管理软件与Ansible安装 下一篇如何用Virtualbox搭建一个虚拟机

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目