本文主要是介绍Linux性能监控命令_pidstat 统计进程信息,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
原文链接:
https://blog.csdn.net/m0_61066945/article/details/126568206
描述
pidstat命令用于监视当前由Linux内核管理的各个任务。
注意:首次运行时显示自系统启动开始的各项统计信息。
目录
- 语法
1.1. 常用参数 - 常见用法
2.1. 监控CPU
2.2. 监控内存
2.3. 监控IO
2.4. 监控上下文切换
2.5. 监控多个pid信息 - 随手shell
- 其他性能监控命令
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 统计进程信息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!