pidstat 作用

pidstat 获取服务器指定进程的使用资源信息(包括 CPU、设备IO、内存、线程、任务切换等)。

执行一波

[root@wille ~]# pidstat
Linux 2.6.32-642.4.2.el6.x86_64 (wille) 06/06/2018 _x86_64_ (4 CPU) 09:01:45 AM PID %usr %system %guest %CPU CPU Command
09:01:45 AM 1 0.00 0.00 0.00 0.00 1 init
09:01:45 AM 2033 0.00 0.00 0.00 0.00 0 sshd
09:01:45 AM 2044 0.00 0.00 0.00 0.00 0 ntpd
09:01:45 AM 2123 0.00 0.00 0.00 0.00 0 master
09:01:45 AM 2132 0.00 0.00 0.00 0.00 2 qmgr
09:01:45 AM 2137 0.00 0.00 0.00 0.00 0 crond
09:01:45 AM 15667 0.01 0.01 0.00 0.02 2 java
09:01:45 AM 19061 0.00 0.00 0.00 0.00 0 sshd
...

结果说明:

  • 第一行显示服务器内核信息、主机名、日期和 CPU 个数;
  • PID - 被监控的任务的进程号
  • Command - 这个任务的命令名称。

CPU 统计数据(-u)

  • %usr - 当在用户层执行(应用程序)时这个任务的cpu使用率,和 nice 优先级无关。注意这个字段计算的cpu时间不包括在虚拟处理器中花去的时间。
  • %system - 这个任务在系统层使用时的cpu使用率。
  • %guest - 任务花费在虚拟机上的cpu使用率(运行在虚拟处理器)。
  • %CPU - 任务总的cpu使用率。在SMP环境(多处理器)中,如果在命令行中输入-I参数的话,cpu使用率会除以你的cpu数量。
  • CPU - 正在运行这个任务的处理器编号

IO 统计数据(-d)

  • kB_rd/s - 任务从硬盘上的读取速度(kb)
  • kB_wr/s - 任务向硬盘中的写入速度(kb)
  • kB_ccwr/s - 任务写入磁盘被取消的速率(kb)

页面失败和内存使用(-r)

  • minflt/s - 从内存中加载数据时每秒出现的小的错误的数目,这些不要求从磁盘载入内存页面。
  • majflt/s - 从内存中加载数据时每秒出现的较大错误的数目,这些要求从磁盘载入内存页面。
  • VSZ - 虚拟容量:整个进程的虚拟内存使用(kb)
  • RSS - 长期内存使用:任务的不可交换物理内存的使用量(kb)

上下文切换情况(-w)

  • Cswch/s:每秒主动任务上下文切换数量
  • Nvcswch/s:每秒被动任务上下文切换数量

命令详解

[root@wille ~]# pidstat --help
Usage: pidstat [ options ] [ <interval> [ <count> ] ]
Options are:
[ -C <command> ] [ -d ] [ -h ] [ -I ] [ -l ] [ -r ] [ -t ] [ -u ] [ -V ] [ -w ]
[ -p { <pid> [,...] | SELF | ALL } ] [ -T { TASK | CHILD | ALL } ] > [options]
> -C <command> 查看对应command进程的状态
> -d 查看设备IO(磁盘IO状态)
> -h 状态信息加入时间戳,如:1528246454
> -I 状态信息加入时间, 如: 08:53:55 AM
> -l 显示进程详细命令,多个指标在同一行
> -r 查看能够得到内存使用情况的数据
> -u 查看cpu使用情况(默认状态)
> -V 查看工具版本
> -w 显示每个进程的上下文切换情况
> -p 指定进程号 (ALL:所有进程,SELF: 当前进程)
> -T { TASK | CHILD | ALL }
这个选项指定了pidstat监控的。TASK表示报告独立的task,CHILD关键字表示报告进程下所有线程统计信息。ALL表示报告独立的task和task下面的所有线程。
注意:task和子线程的全局的统计信息和pidstat选项无关。这些统计信息不会对应到当前的统计间隔,这些统计信息只有在子线程kill或者完成的时候才会被收集。 > [ <interval> [ <count> ]
> interval 显示间隔,单位s
> count 显示次数,默认一直显示。 转载自:https://www.jianshu.com/p/348b6a81810d

使用例子

查看指定进程 CPU,IO,内存情况

pidstat -w 5 :关注nvcswch/s,如果数量较大,则表示进程被强制切换,亦或抢不到CPU资源

pidstat -w -U -l :查看用户、进程和进程命令,重点关注进程名和nvcswch/s

pidstat -wt 1:1秒输出一次

pidstat 命令(Linux 进程使用资源情况采样)的更多相关文章

  1. 查看LINUX进程内存占用情况

    可以直接使用top命令后,查看%MEM的内容.可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令: (1)top top命令是Linux下常用的性能分析 ...

  2. 查看LINUX进程内存占用情况(转)

    可以直接使用top命令后,查看%MEM的内容.可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令: (1)top top命令是Linux下常用的性能分析 ...

  3. 查看LINUX进程内存占用情况及启动时间

    可以直接使用top命令后,查看%MEM的内容.可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令: (1) top top命令是Linux下常用的性能分 ...

  4. Linux常用获取进程占用资源情况手段

    测试环境:Ubuntu14.04 1.  获取进程ID号 ps -aux | grep your_process_name 例如: xxx@xxx:~$ ps -e |grep Midlet|awk ...

  5. Linux - 进程服务资源

    1.进程查看操作管理 ps -eaf # 查看所有进程 kill - PID # 强制终止某个PID进程 kill - PID # 安全退出 需程序内部处理信号 cmd & # 命令后台运行 ...

  6. linux下进程绑定cpu情况查看的几种方法

    1.pidstat命令 查看进程使用cpu情况,如果绑定了多个cpu会都显示出来 pidstat -p `pidof 进程名` -t 1 2.top命令 (1)top (2)按f键可以选择下面配置选项 ...

  7. Linux 运行进程实时监控pidstat命令详解

    简介 pidstat主要用于监控全部或指定进程占用系统资源的情况,如CPU,内存.设备IO.任务切换.线程等.pidstat首次运行时显示自系统启动开始的各项统计信息,之后运行pidstat将显示自上 ...

  8. 【linux】Linux 运行进程实时监控pidstat命令详解

    简介 pidstat主要用于监控全部或指定进程占用系统资源的情况,如CPU,内存.设备IO.任务切换.线程等.pidstat首次运行时显示自系统启动开始的各项统计信息,之后运行pidstat将显示自上 ...

  9. Linux 中查看进程及资源使用情况

    top 自带的 top 命令类似于平时我们使用的任务管理器,能够列出当前系统中的进程及资源的使用情况. $ man top top - display Linux tasks 使用起来很简单,不加任何 ...

随机推荐

  1. Qt qss 动态属性-不同条件不同显示

    一. 1.为了用户界面外观的动态变化,属性选择器可以与动态属性组合使用. 2.当一个属性值变化时,所引用的样式不会自动更新.相反地,必须手动触发更新才会生效.unpolish()用于清理之前的样式,而 ...

  2. 【HANA系列】【第七篇】SAP HANA XS使用Data Services查询CDS实体【一】

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列][第七篇]SAP HANA XS ...

  3. script学习,如何用linux监控你的同事?

    环境:CentOS7 一.为什么要学习script命令 当你在终端或控制台上工作时,你想记录下自己做了些什么吗?当你跟一些Linux管理员同时在系统上干活,你想知道别人干了什么吗?当你让别人远程到你的 ...

  4. unsigned char 与unsigned long互换

    unsigned long UCharToULong(unsigned char * pucVar ){unsigned long ulTemp=0;ulTemp=(unsigned long)(*p ...

  5. Linux软链接硬链接的区别

    ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在 ...

  6. 2019中山纪念中学夏令营-Day14 图论初步【dijkstra算法求最短路】

    Dijkstra是我学会的第一个最短路算法,为什么不先去学SPFA呢?因为我在luogu上翻到了一张比较神奇的图: 关于SPFA -它死了 以及网上还有各位大佬的经验告诉我:SPFA这玩意很容易被卡. ...

  7. IOS订阅优惠-PHP生成ECDSA算法签名

    <?php use Ramsey\Uuid\Uuid; class ItunesSignatureGenerator { private $appBundleID = 'www.u17.com' ...

  8. IdentitiServser4 + Mysql实现Authorization Server

    Identity Server 4官方文档:https://identityserver4.readthedocs.io/en/latest/ 新建2个asp.net core 项目使用空模板 Aut ...

  9. pycharm设置用滑轮改变字体大小

    在电脑第一次安装pycharm之后,发现每次调整代码界面的字体,总是需要到setting里面调整,这样非常不方便,特别是对于代码量很多的时候,我们有时候需要把目光聚焦到某一句代码,这个时候就需要放大, ...

  10. JDBC2

    1.JDBC连接池 public class JdbcTemplateDemo2 { //Junit单元测试,可以让方法独立执行 //1. 获取JDBCTemplate对象 private JdbcT ...