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的ffmpeg python的关键帧抽取

《基于Linux的ffmpegpython的关键帧抽取》本文主要介绍了基于Linux的ffmpegpython的关键帧抽取,实现以按帧或时间间隔抽取关键帧,文中通过示例代码介绍的非常详细,对大家的学... 目录1.FFmpeg的环境配置1) 创建一个虚拟环境envjavascript2) ffmpeg-py

SQLite3命令行工具最佳实践指南

《SQLite3命令行工具最佳实践指南》SQLite3是轻量级嵌入式数据库,无需服务器支持,具备ACID事务与跨平台特性,适用于小型项目和学习,sqlite3.exe作为命令行工具,支持SQL执行、数... 目录1. SQLite3简介和特点2. sqlite3.exe使用概述2.1 sqlite3.exe

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

Linux链表操作方式

《Linux链表操作方式》:本文主要介绍Linux链表操作方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、链表基础概念与内核链表优势二、内核链表结构与宏解析三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势六、典型应用场景七、调试技巧与

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

详解Linux中常见环境变量的特点与设置

《详解Linux中常见环境变量的特点与设置》环境变量是操作系统和用户设置的一些动态键值对,为运行的程序提供配置信息,理解环境变量对于系统管理、软件开发都很重要,下面小编就为大家详细介绍一下吧... 目录前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变

Linux系统中的firewall-offline-cmd详解(收藏版)

《Linux系统中的firewall-offline-cmd详解(收藏版)》firewall-offline-cmd是firewalld的一个命令行工具,专门设计用于在没有运行firewalld服务的... 目录主要用途基本语法选项1. 状态管理2. 区域管理3. 服务管理4. 端口管理5. ICMP 阻断

Linux实现线程同步的多种方式汇总

《Linux实现线程同步的多种方式汇总》本文详细介绍了Linux下线程同步的多种方法,包括互斥锁、自旋锁、信号量以及它们的使用示例,通过这些同步机制,可以解决线程安全问题,防止资源竞争导致的错误,示例... 目录什么是线程同步?一、互斥锁(单人洗手间规则)适用场景:特点:二、条件变量(咖啡厅取餐系统)工作流