Linux性能监控命令_pidstat 统计进程信息

2023-10-14 10:01

本文主要是介绍Linux性能监控命令_pidstat 统计进程信息,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文链接:
https://blog.csdn.net/m0_61066945/article/details/126568206

描述

pidstat命令用于监视当前由Linux内核管理的各个任务。
注意:首次运行时显示自系统启动开始的各项统计信息。
目录

  1. 语法
    1.1. 常用参数
  2. 常见用法
    2.1. 监控CPU
    2.2. 监控内存
    2.3. 监控IO
    2.4. 监控上下文切换
    2.5. 监控多个pid信息
  3. 随手shell
  4. 其他性能监控命令

1. 语法

pidstat [ 选项 ] [ <时间间隔> [ <监控次数> ] ]

1.1. 常用参数

u:监控CPU
-r:监控内存
-d:监控I/O统计信息
-w:监控上下文切换
-t:显示详细信息,也可以指定pidstat必须监视的内容 {task | child | all}
-p:指定PID {pid[,…]| self | all}
-C:指定命令名称包含字符串comm的任务

2. 常见用法

2.1. 监控CPU

pidstat -u 1    #只显示占用CPU的进程
PID    :某个进程的PID
%usr   :用户空间使用的cpu%
%system:内核空间使用的cpu%
%guest :管理程序(hypervisor)为另一个虚拟进程提供服务而等待的虚拟CPU占比
%CPU   :整体CPU的使用率
CPU    :CPU的编号    #例如总cpu只有4核,那么对应每个CPU的编号为 0,1,2,3
Command:进程的命令名称

2.2. 监控内存

pidstat -r 1    #只显示占用内存的进程
PID     :进程的PID
minflt/s:每秒发生的小故障总数      #即不需要从磁盘加载内存页的故障
majflt/s:每秒发生的主要故障总数    #即需要从磁盘加载内存页的故障
VSZ     :虚拟内存使用情况(以千字节为单位)
RSS     :物理内存使用情况(以千字节为单位)
%MEM    :使用总内存占比情况
Command :进程的命令名称

2.3. 监控IO

pidstat -d 1    # #只显示操作磁盘的进程
PID      :进程的PID
kB_rd/s  :磁盘每秒读数据(单位:KB)
kB_wr/s  :磁盘每秒写数据(单位:KB)
kB_ccwr/s:已被任务取消写入磁盘的数据(单位:KB)
Command  :进程的命令名称

2.4. 监控上下文切换

pidstat -w 1    # #只显示正在进行上下文切换的进程
PID      :进程的PID
cswch/s  :每秒自愿上下文切换的总数     #当任务因为需要不可用的资源而阻塞时,就会发生自愿的上下文切换
nvcswch/s:每秒非自愿上下文切换的总数   #当任务在其时间片期间执行,然后被迫放弃处理器时,就会发生非自愿的上下文切换
Command  :进程的命令名称

2.5. 监控多个pid信息

同时监控CPU、内存、磁盘读写。指定某个PID使用-p,指定多个PID使用逗号分隔
pidstat -urd -p 13,20,13152 1 3 #1表示每隔1秒输出一次,3表示共输出3次

3. 随手shell

#!/bin/bashHelp(){echo -e "Usage: $0 [ options ] [ <interval> [ <count> ] ]"echo -e "\t -a: Monitoring all processes"echo -e "\t -p{pid}: Specify the pid"echo -e "\t -k: Kill pidstat"}Main(){local log="`pwd`/logs"[ ! -d ${log} ] && mkdir -p ${log}[ "$1" == "p" ] && options="-p $2 $3 $4" || options="$1 $2"# 输出CPU信息到logs/cpu.logpidstat -u ${options}   > ${log}/cpu.log        &# 输出内存信息到memory.logpidstat -r ${options}   > ${log}/memory.log     &# 输出磁盘读写到disk.logpidstat -d ${options}   > ${log}/disk.log       &# 上下文切换到context.logpidstat -w ${options}   > ${log}/context.log    &}case $1 in
-a)Main $2 $3;;
-p)Main p "$2" $3 $4;;
-k)ps -ef |grep "pidstat" |grep `whoami` |grep -v grep |awk '{print $2}' |xargs kill -9;;
*)Help
esac

意义:
同时监控CPU、内存、磁盘、上下文切换信息,输出到不同文件中

作用:
当某个时间段性能出现损耗,可以通过此脚本查看进程的使用情况

使用:
sh xxx.sh -a 1 86400 # xxx.sh表示脚本名,每1秒输出一次,共监控一天
sh xxx.sh -p 123,321 1 86400 # xxx.sh表示脚本名,-p指定单个或多个pid(多个使用逗号分隔),只监控指定的pid。每1秒输出一次,共监控一天
sh xxx.sh -k # 停止pidstat命令

4. 其他性能监控命令

Linux性能监控命令_top & 实时监控主机信息

Linux性能监控命令_sar & 自动保存30天历史信息

Linux性能监控命令_vmstat & 同时监控cpu、内存、磁盘、分页

Linux性能监控命令_iostat & 监控I/O状态

这篇关于Linux性能监控命令_pidstat 统计进程信息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

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

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

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

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

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

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设置前二、前置条件

SpringBoot监控API请求耗时的6中解决解决方案

《SpringBoot监控API请求耗时的6中解决解决方案》本文介绍SpringBoot中记录API请求耗时的6种方案,包括手动埋点、AOP切面、拦截器、Filter、事件监听、Micrometer+... 目录1. 简介2.实战案例2.1 手动记录2.2 自定义AOP记录2.3 拦截器技术2.4 使用Fi

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

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

Linux系统之lvcreate命令使用解读

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

C语言进阶(预处理命令详解)

《C语言进阶(预处理命令详解)》文章讲解了宏定义规范、头文件包含方式及条件编译应用,强调带参宏需加括号避免计算错误,头文件应声明函数原型以便主函数调用,条件编译通过宏定义控制代码编译,适用于测试与模块... 目录1.宏定义1.1不带参宏1.2带参宏2.头文件的包含2.1头文件中的内容2.2工程结构3.条件编

Spring Boot Actuator应用监控与管理的详细步骤

《SpringBootActuator应用监控与管理的详细步骤》SpringBootActuator是SpringBoot的监控工具,提供健康检查、性能指标、日志管理等核心功能,支持自定义和扩展端... 目录一、 Spring Boot Actuator 概述二、 集成 Spring Boot Actuat