linux系统分析工具pidstat

2024-01-06 16:38

本文主要是介绍linux系统分析工具pidstat,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

pidstat主要用于监控全部或者指定进程占用系统资源的情况如CPU,内存,设备IO,任务切换,线程等.pidstat首次运行事显示自系统启动开始的各项统计信息,之后运行pidstat将显示自上次运行该命令以后的统计信息.用户可以通过指定统计的此时和时间来获得所需要的统计信息.该命令是sysstat中的工具,想要使用该命令需要先安装sysstat工具.pidstat命令只有在内核版本为2.6.20版本以后执行才有效.

用法:

输入pidstat --help后显示帮助:

[root@centos democlass]# 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 } ]

描述:

 The  pidstat  command  is  used  for monitoring individual tasks currently being managed by the Linux kernel.  It writes to standard output activities for every task selected with option -p or for every task managed by the Linux kernel if option -p ALL has been used. Not selecting any tasks is equivalent to specifying -p ALL but  only  active  tasks  (tasks with non-zero statistics values) will appear in the report.

The pidstat command can also be used for monitoring the child processes of selected tasks.  Read about option -T below.

The  interval parameter specifies the amount of time in seconds between each report.  A value of 0 (or no parameters at all) indicates that tasks statistics are to be reported for the time since system startup (boot).  The count parameter can be specified in conjunction with the interval parameter if this one is not set to zero. The value  of  count  determines the number of reports generated at interval seconds apart. If the interval parameter is specified without the count parameter, the pidstat command generates reports continuously.

You can select information about specific task activities using flags.  Not specifying any flags selects only CPU activity.

选项:-C comm		#只显示那些包含字符串(可是正则表达式)comm的命令的名字-d			#显示I/O统计信息(须内核2.6.20及以后)PID			        #进程号kB_rd/s			#每秒此进程从磁盘读取的千字节数kB_wr/s			#此进程已经或者将要写入磁盘的每秒千字节数kB_ccwr/s			#由任务取消的写入磁盘的千字节数Command			#命令的名字-h			#显示所有的活动的任务-I			#在SMP环境,指出任务的CPU使用(等同于选项-u)应该被除于cpu的总数-l			#显示进程的命令名和它的参数-p { pid [,...] | SELF | ALL }		#指定线程显示其报告-r			#显示分页错误的内存利用率When reporting statistics for individual tasks, the following values are displayed:PID			        #进程号minflt/s			#每秒次缺页错误次数(minor page faults),次缺页错误次数意即虚拟内存地址映射成物理内存地址产生的page fault次数majflt/s			#每秒主缺页错误次数(major page faults),当虚拟内存地址映射成物理内存地址时,相应的page在swap中,这样的page fault为major page fault,一般在内存使用紧张时产生VSZ			        #该进程使用的虚拟内存(以kB为单位)RSS			        #该进程使用的物理内存(以kB为单位)%MEM			#当前任务使用的有效内存的百分比Command			#任务的命令名             When reporting global statistics for tasks and all their children, the following values are displayed:PID			        #PID号minflt-nr			#在指定的时间间隔内收集的进程和其子进程的次缺页错误次数majflt-nr			#在指定的时间间隔内收集的进程和其子进程的主缺页错误次数Command			#命令名-s			#堆栈的使用-t			#显示与所选任务相关的线程的统计数据-T { TASK | CHILD | ALL }	#指定必须监测的内容:TASK是默认的,单个任务的报告;CHILD:指定的进程和他们的子进程的全局报告,ALL:相当于TASK和CHILD-u			#报告CPU使用When reporting statistics for individual tasks, the following values are displayed: PID%usr			#用户层任务正在使用的CPU百分比(with or without nice priority ,NOT include time spent running a virtual processor)%system			#系统层正在执行的任务的CPU使用百分比%guest			#运行虚拟机的CPU占用百分比%CPU			#所有的使用的CPU的时间百分比CPU			        #处理器数量Command			#命令When reporting global statistics for tasks and all their children, the following values are displayed:PID			        #PID号usr-ms			#在指定时间内收集的在用户层执行的进程和它的子进程占用的CPU时间(毫秒){with or without nice priority,NOT include time spent running a virtual processor)system-ms			#在指定时间内收集的在系统层执行的进程和它的子进程占用的CPU时间(毫秒)guest-ms			#花在虚拟机上的时间Command			#命令-V			#版本号-w			#报告任务切换情况PID			        #PID号cswch/s			#每秒自动上下文切换nvcswch/s			#每秒非自愿的上下文切换Command			#命令

示例:

$ pidstat 2 5                        #Display five reports of CPU statistics for every active task in the system at two second intervals.(每隔两秒输出一份报告统计)$ pidstat -r -p 1643 2 5             #Display five reports of page faults and memory statistics for PID 1643 at two second intervals.(每隔两秒显示1643进程的内存信息统计)$ pidstat -C "fox|bird" -r -p ALL    #Display global page faults and memory statistics for all the processes whose command name includes the string "fox" or "bird".$ pidstat -T CHILD -r 2 5            #Display five reports of page faults statistics at two second intervals for the child processes of  all  tasks in the system. Only child processes with non-zero statistics values are displayed.


本文参考(大部分):

http://xuclv.blog.51cto.com/5503169/1166398

同时参考:;林昊的<<java应用>>

这篇关于linux系统分析工具pidstat的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/576951

相关文章

Linux线程同步/互斥过程详解

《Linux线程同步/互斥过程详解》文章讲解多线程并发访问导致竞态条件,需通过互斥锁、原子操作和条件变量实现线程安全与同步,分析死锁条件及避免方法,并介绍RAII封装技术提升资源管理效率... 目录01. 资源共享问题1.1 多线程并发访问1.2 临界区与临界资源1.3 锁的引入02. 多线程案例2.1 为

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结

Linux如何查看文件权限的命令

《Linux如何查看文件权限的命令》Linux中使用ls-R命令递归查看指定目录及子目录下所有文件和文件夹的权限信息,以列表形式展示权限位、所有者、组等详细内容... 目录linux China编程查看文件权限命令输出结果示例这里是查看tomcat文件夹总结Linux 查看文件权限命令ls -l 文件或文件夹

idea的终端(Terminal)cmd的命令换成linux的命令详解

《idea的终端(Terminal)cmd的命令换成linux的命令详解》本文介绍IDEA配置Git的步骤:安装Git、修改终端设置并重启IDEA,强调顺序,作为个人经验分享,希望提供参考并支持脚本之... 目录一编程、设置前二、前置条件三、android设置四、设置后总结一、php设置前二、前置条件

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

Linux下在线安装启动VNC教程

《Linux下在线安装启动VNC教程》本文指导在CentOS7上在线安装VNC,包含安装、配置密码、启动/停止、清理重启步骤及注意事项,强调需安装VNC桌面以避免黑屏,并解决端口冲突和目录权限问题... 目录描述安装VNC安装 VNC 桌面可能遇到的问题总结描js述linux中的VNC就类似于Window

linux下shell脚本启动jar包实现过程

《linux下shell脚本启动jar包实现过程》确保APP_NAME和LOG_FILE位于目录内,首次启动前需手动创建log文件夹,否则报错,此为个人经验,供参考,欢迎支持脚本之家... 目录linux下shell脚本启动jar包样例1样例2总结linux下shell脚本启动jar包样例1#!/bin

Linux之platform平台设备驱动详解

《Linux之platform平台设备驱动详解》Linux设备驱动模型中,Platform总线作为虚拟总线统一管理无物理总线依赖的嵌入式设备,通过platform_driver和platform_de... 目录platform驱动注册platform设备注册设备树Platform驱动和设备的关系总结在 l

linux批量替换文件内容的实现方式

《linux批量替换文件内容的实现方式》本文总结了Linux中批量替换文件内容的几种方法,包括使用sed替换文件夹内所有文件、单个文件内容及逐行字符串,强调使用反引号和绝对路径,并分享个人经验供参考... 目录一、linux批量替换文件内容 二、替换文件内所有匹配的字符串 三、替换每一行中全部str1为st