一,安装pidstat:

1,安装

[root@localhost yum.repos.d]# yum install sysstat

2,查看版本:

[root@localhost ~]# pidstat -V
sysstat 版本 11.7.3
(C) Sebastien Godard (sysstat <at> orange.fr)

说明:一般会默认安装,如未安装则可以用上面的yum命令进行安装

3,如果已安装,可以查看所属的rpm包:

[root@yjweb ~]# whereis pidstat
pidstat: /usr/bin/pidstat /usr/share/man/man1/pidstat.1.gz
[root@yjweb ~]# rpm -qf /usr/bin/pidstat
sysstat-11.7.3-2.el8.x86_64

说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

对应的源码可以访问这里获取: https://github.com/liuhongdi/

说明:作者:刘宏缔 邮箱: 371125307@qq.com

二,最常用的六个参数

-u:监控cpu

-r:监控内存

-d:监控硬盘

-w:  显示每个进程的上下文切换情况

-t:   显示选择任务的线程的统计信息

-p:  指定进程id

三,常用的用法举例:

1,监控磁盘

[root@SearchCacheServer ~]# pidstat -d

2,监控cpu

[root@SearchCacheServer ~]# pidstat -u 

3,监控内存

[root@SearchCacheServer ~]# pidstat -r

4,上下文切换

[root@SearchCacheServer ~]# pidstat -w

四,io使用情况的输出信息意义:

[root@SearchCacheServer ~]# pidstat -d
  • PID:进程id

  • kB_rd/s:每秒从磁盘读取的KB

  • kB_wr/s:每秒写入磁盘KB

  • kB_ccwr/s:任务取消的写入磁盘的KB。当任务截断脏的pagecache的时候会发生。

  • 任务取消的写入磁盘的kb数。在任务压缩脏页缓存时可能发生这种情况。在这种情况下,其他任务发起的IO不会处理。

  • iodelay: 表示 I/O 的延迟(单位是时钟周期),包括等待同步块 I/O 和换入块 I/O 结束的时间

    任务的I/O阻塞延迟,以时钟周期为单位。包括同步块I/O和换入块I/O

  • COMMAND:task的命令名

五,查看上下文切换的输出信息意义:

[root@yjweb ~]$ pidstat -wt

上下文切换的输出信息:

cswch/s:表示每秒自愿上下文切换(voluntary context switches)的次数

ncswch/s:表示每秒非自愿上下文切换(non voluntary context switches)的次数

这两个概念一定要牢牢记住,因为它们意味着不同的性能问题:

所谓自愿上下文切换,是指进程无法获取所需资源,导致的上下文切换。

比如说, I/O、内存等系统资源不足时,就会发生自愿上下文切换。

而非自愿上下文切换,则是指进程由于时间片已到等原因,被系统强制调度,进而发生的上下文切换。

比如说,大量进程都在争抢 CPU 时,就容易发生非自愿上下文切换。

观察上下文切换的意义:

自愿上下文切换变多了,说明进程都在等待资源,有可能发生了 I/O 等其他问题;

非自愿上下文切换变多了,说明进程都在被强制调度,也就是都在争抢 CPU,说明 CPU 的确成了瓶颈;

六,显示线程的统计信息 (-t)

[root@yjweb ~]# pidstat -t -p 17700

输出信息:

  • TGID:主线程的表示

  • TID:线程id

  • %usr:进程在用户空间占用cpu的百分比

  • %system:进程在内核空间占用cpu的百分比

  • %guest:进程在虚拟机占用cpu的百分比

  • %CPU:进程占用cpu的百分比

  • %wait: 进程或者线程等待的cpu使用率;此值过高,表示出现进程或线程争抢CPU的情况

  • CPU:处理进程的cpu编号

  • Command:当前进程对应的命令

七,查看cpu的使用情况

[root@yjweb ~]# pidstat -u -p 17700

说明:输出内容与 -t相同,但只显示进程的情况

八,查看指定进程的内存使用情况:

[root@yjweb ~]# pidstat -r -p 17700

输出内容:

  • PID:进程标识符

  • Minflt/s:任务每秒发生的次要错误,不需要从磁盘中加载页

    任务造成的小错误的总数。小错误指的是还不需要从磁盘中加载一个内存页。

  • Majflt/s:任务每秒发生的主要错误,需要从磁盘中加载页

    任务造成的大错误的总数。大错误指的是需要从磁盘中加载一个内存页。

  • VSZ:

    整个任务使用的虚拟内存大小,以kb为单位

  • RSS:常驻集合大小,非交换区物理内存,使用KB

  • 任务使用的没有被交换的物理内存,以kb为单位

    %MEM:任务占用的可用物理内存的比例

  • Command:task命令名

九,pidstat如何对输出数据做排序?

#sort: 排序

#-k :  指定排序用哪一列,下面的例子中是第8列:%CPU

#-r : 倒序

[root@blog databak]# pidstat -u | sort -k 8 -r
02:45:17 PM UID PID %usr %system %guest %wait %CPU CPU Command
02:45:17 PM 0 30330 0.12 0.07 0.00 0.00 0.19 2 AliYunDun
02:45:17 PM 1002 17700 0.05 0.02 0.00 0.00 0.06 0 mysqld
02:45:17 PM 0 23413 0.01 0.01 0.00 0.00 0.03 3 aliyun-service
02:45:17 PM 0 8240 0.00 0.01 0.00 0.00 0.01 1 redis-server
02:45:17 PM 0 30315 0.01 0.00 0.00 0.00 0.01 1 AliYunDunUpdate
02:45:17 PM 0 404 0.00 0.00 0.00 0.00 0.00 3 xfsaild/vda1

十,查看本地centos的版本

[root@yjweb ~]# cat /etc/redhat-release
CentOS Linux release 8.0.1905 (Core)

centos8平台使用pidstat监控cpu/内存/io的更多相关文章

  1. centos8平台使用mpstat监控cpu

    一,mpstat的用途 mpstat是 Multiprocessor Statistics的缩写,是实时cpu监控工具. 在多CPU系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU ...

  2. centos8平台使用slabtop监控slab内存的状态

    一,slabtop 所属的包: [root@yjweb ~]# whereis slabtop slabtop: /usr/bin/slabtop /usr/share/man/man1/slabto ...

  3. python glances来监控linux服务器CPU 内存 IO使用

    什么是 Glances? Glances 是一个由 Python 编写,使用 psutil 库来从系统抓取信息的基于 curses 开发的跨平台命令行系统监视工具. 通过 Glances,我们可以监视 ...

  4. centos8平台使用iotop监控磁盘io

    一,iotop的作用: iotop是监视磁盘I/O使用状况的top类工具, 可以针对进程和线程统计io的使用情况 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblog ...

  5. centos8平台使用iostat监控磁盘io

    一,iostat所属的包: [root@centos8 ~]# whereis iostat iostat: /usr/bin/iostat /usr/share/man/man1/iostat.1. ...

  6. Linux性能监控——CPU,Memory,IO,Network

    版权声明:本文由刘爽原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/107 来源:腾云阁 https://www.qclou ...

  7. centos8平台使用vmstat监控系统

    一,vmstat的用途和特点: vmstat 是一个常用的系统性能分析工具,主要用来分析系统的内存使用情况,也常用来分析 CPU 上下文切换和中断的次数. 相对于 iostat 来说,vmstat 可 ...

  8. python监控cpu 内存实现邮件微信报警

    # qianxiao996精心制作 #博客地址:https://blog.csdn.net/qq_36374896 import psutil, time,smtplib,socket import ...

  9. shell脚本监控cpu/内存使用率 转

    该脚本检测cpu和内存的使用情况,只需要调整memorySetting.cpuSetting.userEmail要发邮件报警的email地址即可 如果没有配置发邮件参数的哥们,已配置了的,直接飞到代码 ...

随机推荐

  1. docker容器数据持久化

    将数据从宿主机挂载到容器中的三种方式 1.Volume 2.Bind Mounts 3.tmpfs Volumes:docker管理宿主机文件系统的一部分(/var/lib/docker/volume ...

  2. Django进入监听端口就自动打开指定页面,无需导航栏手动添加(Django六)

    在我们进入监听端口时画面如下:而因为在urls.py中写过如下语句 我们在监听端口后加上/login就会跳转到login.html页面,如下图 那么如何一打开监听端口就可以走动跳转到login.htm ...

  3. vue 实现页面跳转

    首先,vue项目文件夹如下: components下有两个.vue文件,HelloWorld为创建时自动建立的,login需要自己创建的,login页面效果如下: 首先实现登录按钮的跳转,先对inde ...

  4. css常用属性之绝对定位、相对定位、滚动条属性、背景图属性、字体、鼠标、超链接跳转页面

    1.绝对定位position: fixed(比如广告页面向下滑动的时候,页面最上方有个标题不能随之滑动,就需要用到position: fixed,同时还需要用到一个标签(标签高度很高才会出现滚动的情况 ...

  5. [程序员代码面试指南]递归和动态规划-换钱的方法数(DP,完全背包)

    题目描述 给定arr,arr中所有的值都为正数且不重复.每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个整数aim,求组成aim的方法数. 解题思路 完全背包 和"求换钱的 ...

  6. Redis必须会的知识点

    Nosql:非关系型数据库 分表分库 + 水平拆分 + mysql集群: 在Memcached的高速缓存,Mysql主从复制.读写分离的基础上,由于MyISAM使用表锁,高并发Mysql应用开始使用I ...

  7. Mock简明文档

    Mock简明文档 Mock.mock() Mock.mock( requestUrl?, requestType?, template|function(options) ) Mock.mock( t ...

  8. javascript操作多选下拉列表

    闲来无事,把javascript操作多选下拉列表有关的操作知识复习了一遍,代码附上 <%-- Created by IntelliJ IDEA. User: Administrator Date ...

  9. 【JAVA】JAVA相关知识点收集

    下面这些链接都是我这段时间(7月-9月)看过的.感觉自己现在处于一个疯狂吸收知识的阶段,如果是文字的方式一点一点搬运到自己的博客既重复又费时间,只有等自己积累到一定程度后才能进行原创性高质量的产出吧. ...

  10. LINQ中的OrderBy实现按照两个字段升序、降序排序操作

    在公司或许有这种需求,先根据第一个某个字段按照升序排序,然后如果相同,在按照第二个某个字降序排序,我们该怎么去实现呢? 现在来教教大家分别使用Labmda和LINQ进行这种操作. 1.先按照第一个字段 ...