Linux pidstat命令实战
前言:
前文中我们了解了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命令实战相关推荐
- linux dd命令实战
1. linux dd读取写入磁盘速度 time有计时作用,dd用于复制,从if读出,写到of.if=/dev/zero不产生IO,因此可以用来测试纯写速度.同理of=/dev/null不产生IO,可 ...
- BigData Linux cut-sort-wc-uniq-tee-tr-split-awk-sed命令实战
管道相关命令 1.1 cut cut:以某种方式按照文件的行进行分割 参数列表: -b 按字节选取 忽略多字节字符边界,除非也指定了 -n 标志 -c 按字符选取 -d 自定义分隔符,默认为制表符. ...
- Linux sar命令实战
前言: Linux中的sar命令,全称是(System Activity Reporter系统活动情况报告),它是Linux下的系统运行状态监控工具,可以从多个方面对系统活动进行报告. 包括:网络收发 ...
- 10个重要的Linux ps命令实战
Linux作为Unix的衍生操作系统,Linux内建有查看当前进程的工具ps.这个工具能在命令行中使用. PS 命令是什么 查看它的man手册可以看到,ps命令能够给出当前系统中进程的快照.它能捕获系 ...
- Linux常用命令之Linux常用命令实战知识点
在在复习linux,这是以前做的笔记,分享一下... Linux系统: 一切皆文件 操作文件就是操作Linux系统 一.Linux版本 1.Redhat 企业版.收费 2.centOS Redhat的 ...
- linux elf命令,实战:Linux上修改ELF文件的方法
7zip/bin/7za x -y -bd "-o/temp/94ac6fe8-1a16-43d8-8fa9-c4e2f2bd0445" "/downloadedPack ...
- Linux iostate命令实战
前言: iostat(I/O statistics)工具,对系统的磁盘操作活动进行监控. 类似于vmstat,它只能对系统整体情况进行分析,无法对特定进程进行分析. 1.iostat基本输出 iost ...
- linux常用命令实战
文章目录 cd命令 ls mkdir命令 rmdir命令 vi或vim命令 rm命令 mv命令 cp命令 find命令 ps -ef|grep命令 kill命令 top命令 cd命令 cd命令的功能是 ...
- linux find 命令实战用法
查找并删除所有log-*.log的文件 find / -name "log-*.log" | xargs rm -rf 在当前目录及其多个子目录中查找文件test.c find ...
最新文章
- matlab科学计算及分析,matlab科学计算
- 多巴胺:谷歌开源新型增强学习框架
- python 计算算术平方根
- not null primary key什么意思_为什么我使用了索引,索引却没有生效?
- css打印适应纸张_从生态平衡到打印机故障分析
- Magento教程 20:仅限会员留言的产品评论设定!
- Gridview光棒效果
- 3dmax中为人物添加动作的流程
- python错误修复方法_python常见异常及解决方法
- YDOOK:ESP8266: 官方SDK下载 详细教程 ROST 版本与 NONOS 版本对比与区别
- AutoCAD自定义填充图样详细教程
- linux中tftp怎么配置文件,linux的tftp命令参数及用法详解
- HYSBZ 1406 密码箱
- 计算机关闭测试模式,win10怎么开启及关闭测试模式 win10测试模式对电脑有影响吗...
- Jupyter Notebook 工作环境配置
- 关闭MyEclipse右侧工具栏
- 简单翻译工具--必应词典第三方api使用方法
- HTML入门网页制作,HTML+css运用做出
- GPIO口 多引脚操作
- mysql varchar能不能超过255个字节及产生的问题。
热门文章
- J9数字论:什么是 DAO?DAO 的起源是什么
- Emscripten中的虚拟文件系统
- 学会python还要学什么_学python语言需要配置什么样的电脑
- 小米MIx3 miui11国际版本地化
- 深圳大学OJ——数据结构专项——实验03 队列及综合应用
- RabbitMQ流量削峰应用
- 嵌套查询和连接查询(SQL SERVER 2008)
- 下一代动力电池深度报告,三大技术路线谁能笑到最后?【附下载】| 智东西内参...
- 公需科目2020快速学习_2021公需科目快速学习方法
- 【Shader特效3】旋转扭动效果顶点着色器实现