pidstat命令(pidstat一键脚本linux进程异常排查和性能分析)
Posted 江南飞羽
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pidstat命令(pidstat一键脚本linux进程异常排查和性能分析)相关的知识,希望对你有一定的参考价值。
pidstat简单说明
pidstat为运维超热门使用工具,比ps命令有更丰富的输出十分方便运维/技术人员对linux系统进行排查。 比如找出具有cpu、ram特征的异常进程(如挖矿木马、死循环疯狂读取mysql的业务代码)
安装pidstat
yum -y install sysstat # sysstat 包含了著名的iostat等性能分析命令
pidstat 命令使用参考可看这里: https://www.jianshu.com/p/3991c0dba094
使用方法
为方便大家使用, 本人编写了pidstat常用脚本,可一键输出常用信息。用法如下:
- sh pidstat.sh # 默认输出top10 ,例如cpu% top10进程、 ram% top10进程
- sh pidstat.sh 20 # 20调整为输出top20
注释: production环境中,通常只会有几个进程资源使用率高,所以建议top10就够用了。 当然K8等高密度计算型node节点除外
#!/bin/bash
# date: 2021-05-30
# auther: xx@xx.com
top_line=10
function print_color_blue()
input_1="$*"; red=31; green=32; yellow=33; blue=34; white=37
color=$blue
printf "\\033[4;$colorm$input_1\\033[0m\\n"
sum_help=1
function print_function_name()
input_1=$1
input_2=$2
split_line="==================================="
print_color_blue "\\n""["$sum_help"]"$input_1""
sum_help=$(($sum_help+1))
cpu_info()
print_function_name $FUNCNAME
pidstat -ul | grep PID | head -1
pidstat -ul | sed "1,3d" | sort -k8nr | head -$top_line
ram_info()
print_function_name $FUNCNAME
pidstat -rl | grep PID | head -1
pidstat -rl | sed "1,3d" | sort -k8nr | head -$top_line
storage_info()
print_function_name $FUNCNAME
format="%-23s%-15s%-10s%-10s%-10.1f%-20s%-10s\\n"
format_2="%-23s%-15s%-10s%-10s%-10s%-20s%-10s\\n"
echo time pid kB_rd/s kB_wr/s kB_ccwr/s KB_read_and_write Command | awk 'printf("'"$format_2"'",$1,$2,$3,$4,$5,$6,$7)'
pidstat -dl | sed "1,3d" |awk 'rd_and_rw=$5+$6; printf("'"$format"'",$1,$4,$5,$6,$7,rd_and_rw,$8)' | sort -k5nr| head -$top_line
other_info()
print_function_name $FUNCNAME
pidstat -u | grep PID
pidstat -u | sed "1,3d" | sort -k8n | tail -$top_line
print_function_name "script_change_log: 2021-05-30 release v1"
cpu_info
ram_info
storage_info
pidstat.sh 脚本效果
明细输出pid的usr/sys/总cpu占用率、 ram的vsz、rsz占用率.
以上是关于pidstat命令(pidstat一键脚本linux进程异常排查和性能分析)的主要内容,如果未能解决你的问题,请参考以下文章