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

pidstat命令(pidstat一键脚本linux进程异常排查和性能分析)

linux pidstat 命令详解

进程实时监控pidstat命令详解

进程实时监控pidstat命令详解

android中的pidstat命令?

linux性能分析命令--pidstat