centos8平台使用pidstat监控cpu/内存/io
一,安装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的更多相关文章
- centos8平台使用mpstat监控cpu
一,mpstat的用途 mpstat是 Multiprocessor Statistics的缩写,是实时cpu监控工具. 在多CPU系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU ...
- centos8平台使用slabtop监控slab内存的状态
一,slabtop 所属的包: [root@yjweb ~]# whereis slabtop slabtop: /usr/bin/slabtop /usr/share/man/man1/slabto ...
- python glances来监控linux服务器CPU 内存 IO使用
什么是 Glances? Glances 是一个由 Python 编写,使用 psutil 库来从系统抓取信息的基于 curses 开发的跨平台命令行系统监视工具. 通过 Glances,我们可以监视 ...
- centos8平台使用iotop监控磁盘io
一,iotop的作用: iotop是监视磁盘I/O使用状况的top类工具, 可以针对进程和线程统计io的使用情况 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblog ...
- centos8平台使用iostat监控磁盘io
一,iostat所属的包: [root@centos8 ~]# whereis iostat iostat: /usr/bin/iostat /usr/share/man/man1/iostat.1. ...
- Linux性能监控——CPU,Memory,IO,Network
版权声明:本文由刘爽原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/107 来源:腾云阁 https://www.qclou ...
- centos8平台使用vmstat监控系统
一,vmstat的用途和特点: vmstat 是一个常用的系统性能分析工具,主要用来分析系统的内存使用情况,也常用来分析 CPU 上下文切换和中断的次数. 相对于 iostat 来说,vmstat 可 ...
- python监控cpu 内存实现邮件微信报警
# qianxiao996精心制作 #博客地址:https://blog.csdn.net/qq_36374896 import psutil, time,smtplib,socket import ...
- shell脚本监控cpu/内存使用率 转
该脚本检测cpu和内存的使用情况,只需要调整memorySetting.cpuSetting.userEmail要发邮件报警的email地址即可 如果没有配置发邮件参数的哥们,已配置了的,直接飞到代码 ...
随机推荐
- bind,call,apply模拟实现
首先,三者第一个参数都为this指向 区别 bind返回的是一个函数体 call和apply会直接执行,但是call参数需要一个一个进行传递,apply的第二个参数是一个数组 实现 bind 简单实现 ...
- oracle之三手工不完全恢复
手工不完全恢复 4.1 不完全恢复的特点: 1)让整个database 回到过去某个时间点,不能避免数据丢失. 2)想跳过坏日志而继续恢复所有其他工作是不可能的,前滚没有这个功能(考点). 3)必须以 ...
- 小程序开发-iView Weapp微信小程序UI组件库入门使用
iView Weapp UI组件库 今天来试试iView Weapp 这个微信小程序组件库,看看好不好用~~ 官网地址: http://inmap.talkingdata.com/wx/index_p ...
- [LeetCode]230. 二叉搜索树中第K小的元素(BST)(中序遍历)、530. 二叉搜索树的最小绝对差(BST)(中序遍历)
题目230. 二叉搜索树中第K小的元素 给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素. 题解 中序遍历BST,得到有序序列,返回有序序列的k-1号元素. 代 ...
- Mybatis注解开发案例(入门)
1.创建maven工程,配置pom.xml 文件. 2.创建实体类 3.创建dao接口 4.创建主配置文件SqlMapConfig.xml 5.在SqlMapConfig.xml中导入外部配置文件jd ...
- 格式化时间戳的n种方法
1 var time = new Date(ele.time).toLocaleString().split(' ')[0] 2 formatDate: function (value) { let ...
- Java8 新特性lambda表达式(一)初始
本篇参考Richard Warburton的 java8 Lambdas :Functional Programming for the Masses 学习lambda表达式之前,需要知道什么是函数式 ...
- Salesforce LWC学习(二十六) 简单知识总结篇三
首先本篇感谢长源edward老哥的大力帮助. 背景:我们在前端开发的时候,经常会用到输入框,并且对这个输入框设置 required或者其他的验证,当不满足条件时使用自定义的UI或者使用标准的 inpu ...
- 破晓行动----带你总结JVM的知识大全(二)
JVM运行时内存 + 垃圾回收与算法
- React手稿之State Hooks of Hooks
React Hooks React在16.7.0-alpha.0版本中提到了Hooks的概念,目前还是Proposal阶段. 官方也陈述,接下来的90%的工作会投入到React Hooks中. 从目前 ...