浅析磁盘常见的性能指标及观测IO性能指标的命令(下)

简介: 磁盘性能指标说明衡量磁盘性能常见的指标有: 使用率、饱和度、IOPS、吞吐量以及响应时间,具体说明如下:使用率,是指磁盘处理 I/O 的时间百分比。过高的使用率(比如超过 80%),通常意味着磁盘 I/O 存


属性值说明:

  • PID:进程标识符
  • Minflt/s:任务每秒发生的次要错误,不需要从磁盘中加载页
  • Majflt/s:任务每秒发生的主要错误,需要从磁盘中加载页
  • VSZ:虚拟地址大小,虚拟内存的使用KB
  • RSS:常驻集合大小,非交换区内存的使用KB
  • Command:task命令名

也可以直接pidstat -r,是全部进程的内存使用情况!

示例:显示各个进程IO的使用情况

pidstat -d
Linux 3.10.0-957.el7.x86_64 (VM-75-65)  04/24/2020      _x86_64_        (4 CPU)
02:25:35 PM   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
02:25:35 PM     0         1      6.42    242.84      0.72  systemd
02:25:35 PM     0      2432      0.00      0.00      0.00  xfsaild/sda3
02:25:35 PM     0      2501      0.00      0.00      0.00  systemd-journal
02:25:35 PM     0      2522      0.00      0.00      0.00  lvmetad
02:25:35 PM     0      2539      0.35      0.00      0.00  systemd-udevd
02:25:35 PM     0      4863      0.00      0.17      0.00  auditd
02:25:35 PM    32      4893      0.00      0.00      0.00  rpcbind
02:25:35 PM     0      4894      0.00      0.00      0.00  smartd
02:25:35 PM     0      4896      0.00      0.00      0.00  irqbalance
复制代码


属性值说明:

  • PID:进程ID
  • kB_rd/s:每秒从磁盘读取的KB
  • kB_wr/s:每秒写入磁盘KB
  • kB_ccwr/s:任务取消的写入磁盘的KB。当任务截断脏的pagecache的时候会发生。
  • COMMAND:task的命令名

 

示例:进程的上下文切换情况

pidstat -w
Linux 3.10.0-957.el7.x86_64 (VM-75-65)  04/24/2020      _x86_64_        (4 CPU)
02:26:50 PM   UID       PID   cswch/s nvcswch/s  Command
02:26:50 PM     0         1      0.36      0.00  systemd
02:26:50 PM     0         2      0.01      0.00  kthreadd
02:26:50 PM     0         3     10.42      0.00  ksoftirqd/0
02:26:50 PM     0         5      0.00      0.00  kworker/0:0H
02:26:50 PM     0         7      1.77      0.00  migration/0
02:26:50 PM     0         8      0.00      0.00  rcu_bh
02:26:50 PM     0         9    114.23      0.00  rcu_sched
02:26:50 PM     0        10      0.00      0.00  lru-add-drain
02:26:50 PM     0        11      0.25      0.00  watchdog/0
02:26:50 PM     0        12      0.25      0.00  watchdog/1
复制代码


属性值说明:

  • PID:进程ID
  • cswch/s:每秒主动任务上下文切换数量
  • nvcswch/s:每秒被动任务上下文切换数量
  • Command:命令名

 

示例:显示特定进程的线程统计情况

pidstat -p 12920 -t
Linux 2.6.32-573.el6.x86_64 (VM-75-64)  04/24/2020      _x86_64_        (8 CPU)
02:20:23 PM      TGID       TID    %usr %system  %guest    %CPU   CPU  Command
02:20:23 PM     12920         -    0.00    0.00    0.00    0.00     3  java
02:20:23 PM         -     12920    0.00    0.00    0.00    0.00     3  |__java
02:20:23 PM         -     12922    0.00    0.00    0.00    0.00     6  |__java
02:20:23 PM         -     12923    0.00    0.00    0.00    0.00     0  |__java
02:20:23 PM         -     12924    0.00    0.00    0.00    0.00     0  |__java
02:20:23 PM         -     12925    0.00    0.00    0.00    0.00     2  |__java
02:20:23 PM         -     12926    0.00    0.00    0.00    0.00     5  |__java
02:20:23 PM         -     12927    0.00    0.00    0.00    0.00     4  |__java
02:20:23 PM         -     12928    0.00    0.00    0.00    0.00     1  |__java
02:20:23 PM         -     12930    0.00    0.00    0.00    0.00     5  |__java
02:20:23 PM         -     12931    0.00    0.00    0.00    0.00     5  |__java
02:20:23 PM         -     12932    0.00    0.00    0.00    0.00     3  |__java
02:20:23 PM         -     12933    0.00    0.00    0.00    0.00     4  |__java
02:20:23 PM         -     12934    0.00    0.00    0.00    0.00     4  |__java
02:20:23 PM         -     12935    0.00    0.00    0.00    0.00     5  |__java
02:20:23 PM         -     12936    0.00    0.00    0.00    0.00     3  |__java
02:20:23 PM         -     12938    0.00    0.00    0.00    0.00     5  |__java
02:20:23 PM         -     12939    0.00    0.00    0.00    0.00     1  |__java
02:20:23 PM         -     12940    0.00    0.00    0.00    0.00     6  |__java
02:20:23 PM         -     12941    0.00    0.00    0.00    0.00     2  |__java
02:20:23 PM         -     12943    0.00    0.00    0.00    0.00     6  |__java
复制代码


属性值说明:

  • TGID:主线程的表示
  • TID:线程id
  • %usr:进程在用户空间占用cpu的百分比
  • %system:进程在内核空间占用cpu的百分比
  • %guest:进程在虚拟机占用cpu的百分比
  • %CPU:进程占用cpu的百分比
  • CPU:处理进程的cpu编号
  • Command:当前进程对应的命令

iotop


iotop是一个用来监视磁盘I/O使用状况的 top 类工具,可监测到哪一个程序使用的磁盘IO的信息。

命令参数说明:

  • -o, --only只显示正在产生I/O的进程或线程。除了传参,可以在运行过程中按o生效。
  • -b, --batch非交互模式,一般用来记录日志。
  • -n NUM, --iter=NUM设置监测的次数,默认无限。在非交互模式下很有用。
  • -d SEC, --delay=SEC设置每次监测的间隔,默认1秒,接受非整形数据例如1.1。
  • -p PID, --pid=PID指定监测的进程/线程。
  • -u USER, --user=USER指定监测某个用户产生的I/O。
  • -P, --processes仅显示进程,默认iotop显示所有线程。
  • -a, --accumulated显示累积的I/O,而不是带宽。
  • -k, --kilobytes使用kB单位,而不是对人友好的单位。在非交互模式下,脚本编程有用。
  • -t, --time 加上时间戳,非交互非模式。
  • -q, --quiet 禁止头几行,非交互模式。有三种指定方式,其中,-q表示只在第一次监测时显示列名,-qq表示永远不显示列名,-qqq表示永远不显示I/O汇总。

交互按键:

和top命令类似,iotop也支持以下几个交互按键。

  • left和right方向键:改变排序。  
  • r:反向排序。
  • o:切换至选项--only。
  • p:切换至--processes选项。
  • a:切换至--accumulated选项。
  • q:退出。
  • i:改变线程的优先级。

只显示正在产生I/O的进程或线程(交互式)

除了传参,可以在运行过程中按o生效。

iotop  -o
复制代码


按时间间隔刷新(交互式)

每间隔2秒,输出5次。

iotop  -d 2 -n 5
复制代码


按时间间隔刷新,输出到屏幕(非交互式)

每间隔2秒,输出5次。也可输出到日志文本,用于监控某时间段的io信息.

iotop -botq -n 5 -d 2 
复制代码


输出PID为8382的进程的磁盘IO信息(非交互式)

iotop -botq -p 8382


相关文章
|
6月前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
309 10
|
6月前
|
Linux
Linux操作系统调优相关工具(三)查看IO运行状态相关工具 查看哪个磁盘或分区最繁忙?
Linux操作系统调优相关工具(三)查看IO运行状态相关工具 查看哪个磁盘或分区最繁忙?
138 0
|
18天前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
192 2
|
2月前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
130 5
|
3月前
|
Unix 数据处理 Perl
|
3月前
|
NoSQL Redis 数据库
Redis AOF重写问题之同一数据产生两次磁盘IO如何解决
Redis AOF重写问题之同一数据产生两次磁盘IO如何解决
Redis AOF重写问题之同一数据产生两次磁盘IO如何解决
|
2月前
crash —— 获取系统的磁盘IO统计数据
crash —— 获取系统的磁盘IO统计数据
|
5月前
|
网络协议 Unix Shell
第三方App与Termux命令建立IO通道
、第三方 App 与 Termux 建立 TCP/Socket 通信 通过 RunCommandService 调用 Termux 执行 nc 命令反弹某个程序,然后通过 java.net.Socket 建立 Socket 连接,取得 Socket 的 IO 流,即可实现进程间通信。 调用 Termux。注意,Termux 可使用两个版本的 Netcat:安卓自带的 /system/bin/nc 和 Termux 仓库的 netcat-openbsd。前者随 ToyBox 在 Android Marshmallow 被引入,支持反弹 shell,而后者不支持;后者支持抽象命名空间 UDS。所以
|
6月前
|
存储 消息中间件 缓存
jeecgboot运行磁盘不足问题( java.io.IOException)和redis闪退问题
jeecgboot运行磁盘不足问题( java.io.IOException)和redis闪退问题
71 0
|
3月前
|
存储 Java
【IO面试题 四】、介绍一下Java的序列化与反序列化
Java的序列化与反序列化允许对象通过实现Serializable接口转换成字节序列并存储或传输,之后可以通过ObjectInputStream和ObjectOutputStream的方法将这些字节序列恢复成对象。