pidstat概述

Linux-pidstat监控并统计Linux进程的数据

pidstat命令用来监控被Linux内核管理的独立任务(进程)。它输出每个受内核管理的任务的相关信息。pidstat命令也可以用来监控特定进程的子进程。间隔参数用于指定每次报告间的时间间隔。它的值为0(或者没有参数)说明进程的统计数据的时间是从系统启动开始计算的。


安装pidstat

pidstat 是sysstat软件套件的一部分,sysstat包含很多监控linux系统状态的工具,它能够从大多数linux发行版的软件源中获得。

在Debian/Ubuntu系统中可以使用下面的命令来安装

# apt-get install sysstat

CentOS/Fedora/RHEL版本的linux中则使用下面的命令:

# yum install sysstat

使用pidstat

使用pidstat不加任何参数等价于加上-p参数,但是只有正在活动的任务会被显示出来。

# pidstat

在结果中你能看到如下内容:

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

I/O 统计数据

通过使用-d参数来得到I/O的统计数据。比如:

[xgj@entel2 ~]$ pidstat -d -p 2749
Linux 3.10.5-3.el6.x86_64 (entel2)  01/19/2017  _x86_64_    (24 CPU)08:20:06 PM       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
08:20:06 PM      2749      0.00      0.00      0.00  mdbJob
[xgj@entel2 ~]$ 

IO 输出会显示一些内的条目:

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

页面失败和内存使用

使用-r标记你能够得到内存使用情况的数据。

[xgj@entel2 ~]$ pidstat -r -p 2749
Linux 3.10.5-3.el6.x86_64 (entel2)  01/19/2017  _x86_64_    (24 CPU)08:21:04 PM       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
08:21:04 PM      2749      0.00      0.00 1708464  34100   0.03  mdbJob
[xgj@entel2 ~]$ 

重要的条目:

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

案例

1. 你可以通过使用下面的命令来监测内存使用

# pidstat -r 2 5

这会给你5份关于page faults的统计数据结果,间隔2秒。这将会更容易的定位出现问题的进程。

2. 显示所有mysql服务器的子进程

# pidstat -T CHILD -C OCProLinux 2.6.32-431.el6.x86_64 (centos6.5)     01/20/2017  _x86_64_    (8 CPU)12:40:42 AM       PID    usr-ms system-ms  guest-ms  Command
12:40:42 AM     22022      3200      3920         0  OCPro
12:40:42 AM     22027      3310      4200         0  OCPro
12:40:42 AM     22032      3240      4010         0  OCPro
12:40:42 AM     22037      3270      4010         0  OCPro
12:40:42 AM     22042      3110      3940         0  OCPro

3. 将所有的统计数据结合到一个便于阅读的单一报告中:

# pidstat -urd -h

Linux-pidstat Monitor and Find Statistics for Linux Procesess相关推荐

  1. 【Linux】一步一步学Linux——as命令(260)

    00. 目录 文章目录 00. 目录 01. 命令概述 02. 命令格式 03. 常用选项 04. 参考示例 05. 附录 01. 命令概述 as命令GNU组织推出的一款汇编语言编译器,它支持多种不同 ...

  2. 【Linux】一步一步学Linux——set命令(222)

    00. 目录 文章目录 00. 目录 01. 命令概述 02. 命令格式 03. 常用选项 04. 参考示例 05. 附录 01. 命令概述 set命令作用主要是显示系统中已经存在的shell变量,以 ...

  3. 【Linux】一步一步学Linux——readonly命令(219)

    00. 目录 文章目录 00. 目录 01. 命令概述 02. 命令格式 03. 常用选项 04. 参考示例 05. 附录 01. 命令概述 readonly命令用于定义只读shell变量和shell ...

  4. 【Linux】一步一步学Linux——ss命令(170)

    00. 目录 文章目录 00. 目录 01. 命令概述 02. 命令格式 03. 常用选项 04. 参考示例 05. 附录 01. 命令概述 ss命令用来显示处于活动状态的套接字信息.ss命令可以用来 ...

  5. 【Linux】一步一步学Linux——netstat命令(166)

    00. 目录 文章目录 00. 目录 01. 命令概述 02. 命令格式 03. 常用选项 04. 参考示例 05. 附录 01. 命令概述 netstat命令用于显示各种网络相关信息,如网络连接,路 ...

  6. 【Linux】一步一步学Linux——ethtool命令(155)

    00. 目录 文章目录 00. 目录 01. 命令概述 02. 命令格式 03. 常用选项 04. 参考示例 05. 总结 06. 附录 01. 命令概述 ethtool命令用于查询ethX网口基本设 ...

  7. 【Linux】一步一步学Linux——ping命令(150)

    00. 目录 文章目录 00. 目录 01. 命令概述 02. 命令格式 03. 常用选项 04. 参考示例 05. 使能和禁用ping的方法 06. 总结 07. 附录 01. 命令概述 ping命 ...

  8. linux扩展磁盘空间命令_在Linux上监视磁盘空间– SQL Server DBA的有用命令

    linux扩展磁盘空间命令 In this article, we will explore the different Linux commands related to the disk spac ...

  9. [RHEL5企业级Linux服务攻略]--第1季 Linux服务器的搭建与测试

    1 Red Hat Enterprise Linux 5的安装 安装Red Hat Linux的硬件要求如下,一般现在的电脑配置都可以满足这些要求了哈: CPU:Pentium以上处理器.文本模式推荐 ...

最新文章

  1. java反射 invoke详解
  2. python3 如何让字典保持有序
  3. springmvc九:spring mvc 简单介绍
  4. 如何在JS中应用正则表达式
  5. FastCGI - Getting Request URI and Content in C++ FCGI
  6. iOS报错:linker command failed with exit code 1 (use -v to see invocation) 问题解决方式之一
  7. Jdk1.6 JUC源码解析(12)-ArrayBlockingQueue
  8. Texpad for Mac(LaTeX编辑器软件)
  9. Koa-router 优先级问题
  10. ×××计算机信息系统安全保护条例
  11. CentOS 7:安装网易云音乐
  12. java 设置压缩文件大小不变_为什么把文件压缩后,文件大小却不变呢?
  13. Valve在Game Dev Conference上,OUYA上的1000场比赛等等
  14. 使用J-Flash烧录固件
  15. 漫画人物头像总是画不好?快看看这些注意点你有没有中招!
  16. php聊天室禁言时间开发,聊天室技术(五) -- 指挥中心_PHP
  17. android 原生分享文件,Android原生文件分享
  18. 喜欢士兵突击,我们都丢掉了,许三多没有丢
  19. java中 先进后出的集合_程序猿的日常——Java中的集合列表
  20. 蓝桥ROS之f1tenth案例学习与调试(成功)

热门文章

  1. C++基本序列式容器 vector (一)
  2. php聊天功能_php实现简单聊天功能
  3. 安装程序无法创建新的系统分区也无法定位现有系统分区_如何拥有一个 Windows 10 和 Debian 10 的双系统...
  4. 【数学建模】MATLAB应用实战系列(九十一)-熵权法应用案例(附MATLAB和Python代码)
  5. MATLAB在人工智能中的应用案例:以MATLAB的方式玩转自动驾驶(附部分代码)
  6. shell脚本一键安装JDK及配置环境变量
  7. 朴素贝叶斯(NaiveBayes)算法总结
  8. Hadoop ssh配置设置
  9. TensorFlow官方入门实操课程-全连接神经网络分类
  10. python logging 毫秒级别的时间打印