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;${color}m${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进程异常排查和性能分析)的主要内容,如果未能解决你的问题,请参考以下文章