命令获取进程CPU占用和内存占用

bash   内存占用   CPU占用  

一、首先如何快速取得进程PID

  • 通过netstat获得pid
netstat -anp | grep ":$port " | grep LISTEN| awk '{print $7}' | awk -F"/" '{ print $1 }'|uniq  
  • 通过ps 获得pid
ps -ef|grep $cmd|grep -v docker-containerd|grep -v grep|awk '{print $2}'|tr -s '\n' ' '  

二、获取进程的CPU使用率

  • 通过PID获取CPU使用率
ps --no-heading --pid=$pid -o pcpu|sed s/[[:space:]]//g  

三、获取进程内存占用

  • VmRSS当前进程使用的物理内存
mem=$(cat /proc/$pid/status|grep -e VmRSS| awk '{print $2}')  
mem=$[ $mem * 1024 ]  
echo $mem  

四、获取进程IO输入

  • read_bytes IO输入
cat /proc/$pid/io|grep `read_bytes` IO输入|awk '{print $2}'  

五、获取进程IO输出

  • write_bytes IO输出
cat /proc/$pid/io|grep -v cancelled_write_bytes|grep write_bytes|awk '{print $2}'