前言:

前文中我们了解了vmstat命令,其可以监控操作系统整体的CPU、内存、IO运行情况。但是如果我们相对某一个进程进行监控的话,vmstat就难免心有余而力不足。这时就需要本文主角登场,pidstat命令。

pidstat可用于监控全部或指定进程的CPU、内存、IO等系统资源的占用情况。

下面就一起来实战下该命令吧。

1.常规使用

最常用的pidstat命令就是 pidstat 5(5秒刷新一次,用户也可自定义为其他时间段)

root@7bc18553126f:/# pidstat 5
Linux 5.10.76-linuxkit (7bc18553126f) 03/13/22 _aarch64_ (4 CPU)02:57:51      UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
02:57:56        0     42290    0.40    0.00    0.00    0.00    0.40     0  watch
02:57:56        0     52989  100.00    0.00    0.00    0.00  100.00     3  stress

此时的打印会每5秒输出一次当前所有进程的资源使用情况。

字段含义解释:

PID 进程ID
%usr 进程在用户空间占用CPU的百分比
%system 进程在内核空间占用的CPU的百分比
%guest 进程在虚拟机占用的CPU的百分比
%wait 进程在等待执行所占用的CPU的百分比
%CPU 进程占用的CPU的百分比
CPU 处理进程的CPU编号
Command 当前进程所对应的命令

2.查看内存使用

使用pidstat -r可以查看具体的内存使用情况

root@7bc18553126f:/# pidstat -r 5
Linux 5.10.76-linuxkit (7bc18553126f) 03/13/22 _aarch64_ (4 CPU)08:05:59      UID       PID  minflt/s  majflt/s     VSZ     RSS   %MEM  Command
08:06:04        0     54333     32.40      0.00    3020    2500   0.12  watch
08:06:04        0     68296     89.40      0.00    4564    2620   0.13  pidstat08:06:04      UID       PID  minflt/s  majflt/s     VSZ     RSS   %MEM  Command
08:06:09        0     54333     48.40      0.00    3020    2500   0.12  watch
08:06:09        0     68296     20.40      0.00    4564    2860   0.14  pidstat

同样是5秒钟打印一次进程的内存使用情况。

具体输出字段含义如下:

PID 进程ID
minflt/s 每秒次缺页错误次数(minor page faults),当虚拟内存地址映射为物理内存地址时,相应的page数据已经加载到page cache,只需要将该page与进程虚拟地址空间进行映射即可
majflt/s 每秒主缺页错误次数(major page faults),当虚拟内存映射为物理内存地址时,相应的page数据还在磁盘上,此时则会触发一次major fault,
VSZ 虚拟内存大小
RSS 常驻内存大小(非swap内存)
%MEM 占用内存比
Command 当前进程所对应的命令

有关于minflt 和 majflt相关的内容更多可以参考:

page fault的两种区别(major、minor)_程序猿Ricky的日常干货的博客-CSDN博客

Linux对内存的管理, 以及page fault的概念 - 简书

3.显示进程IO使用情况

pidstat也支持通过-d命令来查看IO使用情况

root@7bc18553126f:/# pidstat -d 5
Linux 5.10.76-linuxkit (7bc18553126f) 03/13/22 _aarch64_ (4 CPU)08:38:02      UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s iodelay  Command
08:38:07        0     71165      0.00      0.00      0.00     297  stress08:38:07      UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s iodelay  Command
08:38:12        0     71165      0.00      0.00      0.00     298  stress

同样是5秒钟打印一次进程的IO情况。

具体输出字段含义如下:

PID 进程ID
kB_rd/s 每秒从磁盘读取的字节数(KB为单位)
kB_wr/s 每秒写入磁盘的字节数(KB为单位)
kB_ccwr/s 任务取消的写入磁盘的字节数(KB为单位),当任务截断脏PageCache时会发生
iodelay IO延迟(以时钟周期为单位),该延迟包含了等待同步块IO完成和swap块IO完成所花费的延迟
Command 当前进程对应的命令

4.显示进程上下文切换情况

在之前介绍vmstat命令时,其中有一个cs(context switch)代表每秒上下文切换的次数。

但vmstat给的是总的进程的切换次数,pidstat -w 命令可以展示出每个继承的上下文切换次数。

有关于上下文切换的知识点可以参考: 深入理解CPU上下文切换 - 暗夜心慌方 - 博客园

root@7bc18553126f:/# pidstat -w 5
Linux 5.10.76-linuxkit (7bc18553126f) 03/13/22 _aarch64_ (4 CPU)08:59:17      UID       PID   cswch/s nvcswch/s  Command
08:59:22        0     54333      1.80      0.00  watch
08:59:22        0     72353  14601.80  14605.00  stress
08:59:22        0     73113      0.20      0.00  pidstat

同样是5秒输出一次,输出字段含义如下:

PID 进程ID
cswch/s 每秒主动切换次数
nvcswch/s 每秒被动切换次数
Command 当前进程对应的命令

主动切换:当前进程无法获取所需资源导致的上下文切换。当IO、内存等系统资源不足时就会发生;

被动切换:当进程由于CPU时间分片已到等原因,被系统强制调度所发生的上下文切换;当有大量进程在争抢CPU时,就容易发生被动切换;

总结:

在平时的使用中主要也就是使用到上面几种方式。

需要注意的点是:上面的命令都可以查看指定进程的资源使用情况(添加-p pid即可)

Linux pidstat命令实战相关推荐

  1. linux dd命令实战

    1. linux dd读取写入磁盘速度 time有计时作用,dd用于复制,从if读出,写到of.if=/dev/zero不产生IO,因此可以用来测试纯写速度.同理of=/dev/null不产生IO,可 ...

  2. BigData Linux cut-sort-wc-uniq-tee-tr-split-awk-sed命令实战

    管道相关命令 1.1 cut cut:以某种方式按照文件的行进行分割 参数列表: -b 按字节选取 忽略多字节字符边界,除非也指定了 -n 标志 -c 按字符选取 -d 自定义分隔符,默认为制表符. ...

  3. Linux sar命令实战

    前言: Linux中的sar命令,全称是(System Activity Reporter系统活动情况报告),它是Linux下的系统运行状态监控工具,可以从多个方面对系统活动进行报告. 包括:网络收发 ...

  4. 10个重要的Linux ps命令实战

    Linux作为Unix的衍生操作系统,Linux内建有查看当前进程的工具ps.这个工具能在命令行中使用. PS 命令是什么 查看它的man手册可以看到,ps命令能够给出当前系统中进程的快照.它能捕获系 ...

  5. Linux常用命令之Linux常用命令实战知识点

    在在复习linux,这是以前做的笔记,分享一下... Linux系统: 一切皆文件 操作文件就是操作Linux系统 一.Linux版本 1.Redhat 企业版.收费 2.centOS Redhat的 ...

  6. linux elf命令,实战:Linux上修改ELF文件的方法

    7zip/bin/7za x -y -bd "-o/temp/94ac6fe8-1a16-43d8-8fa9-c4e2f2bd0445" "/downloadedPack ...

  7. Linux iostate命令实战

    前言: iostat(I/O statistics)工具,对系统的磁盘操作活动进行监控. 类似于vmstat,它只能对系统整体情况进行分析,无法对特定进程进行分析. 1.iostat基本输出 iost ...

  8. linux常用命令实战

    文章目录 cd命令 ls mkdir命令 rmdir命令 vi或vim命令 rm命令 mv命令 cp命令 find命令 ps -ef|grep命令 kill命令 top命令 cd命令 cd命令的功能是 ...

  9. linux find 命令实战用法

    查找并删除所有log-*.log的文件 find / -name "log-*.log" | xargs  rm -rf 在当前目录及其多个子目录中查找文件test.c find ...

最新文章

  1. matlab科学计算及分析,matlab科学计算
  2. 多巴胺:谷歌开源新型增强学习框架
  3. python 计算算术平方根
  4. not null primary key什么意思_为什么我使用了索引,索引却没有生效?
  5. css打印适应纸张_从生态平衡到打印机故障分析
  6. Magento教程 20:仅限会员留言的产品评论设定!
  7. Gridview光棒效果
  8. 3dmax中为人物添加动作的流程
  9. python错误修复方法_python常见异常及解决方法
  10. YDOOK:ESP8266: 官方SDK下载 详细教程 ROST 版本与 NONOS 版本对比与区别
  11. AutoCAD自定义填充图样详细教程
  12. linux中tftp怎么配置文件,linux的tftp命令参数及用法详解
  13. HYSBZ 1406 密码箱
  14. 计算机关闭测试模式,win10怎么开启及关闭测试模式 win10测试模式对电脑有影响吗...
  15. Jupyter Notebook 工作环境配置
  16. 关闭MyEclipse右侧工具栏
  17. 简单翻译工具--必应词典第三方api使用方法
  18. HTML入门网页制作,HTML+css运用做出
  19. GPIO口 多引脚操作
  20. mysql varchar能不能超过255个字节及产生的问题。

热门文章

  1. J9数字论:什么是 DAO?DAO 的起源是什么
  2. Emscripten中的虚拟文件系统
  3. 学会python还要学什么_学python语言需要配置什么样的电脑
  4. 小米MIx3 miui11国际版本地化
  5. 深圳大学OJ——数据结构专项——实验03 队列及综合应用
  6. RabbitMQ流量削峰应用
  7. 嵌套查询和连接查询(SQL SERVER 2008)
  8. 下一代动力电池深度报告,三大技术路线谁能笑到最后?【附下载】| 智东西内参...
  9. 公需科目2020快速学习_2021公需科目快速学习方法
  10. 【Shader特效3】旋转扭动效果顶点着色器实现