使用cat /proc/[pid]/status 可以查看当前的进程状态。 部分字段解释如下: 这里VmRSS就指当前进程所占用的物理内存,VmSize指当前进程占用的虚拟内存。 更多字段解释参考博客https://blog.csdn.net/zjl_1026_2001/article/details/2294036
记录脚本可参考:
#!/bin/bash PROCESS=TEST #进程名 LOG="log.txt" PID=$(ps -rf | grep $PROCESS | grep -v grep | awk '{print $2}') #根据进程名获取进程pid while [ "$PID" != " " ] do VmRSS=$(cat /proc/$PID/status | grep VmRSS) #获取进程的物理内存 VmSize=$(cat /proc/$PID/status | grep VmSize) #获取进程的虚拟内存 time=$(date "+%Y-%m-%d %H:%M:%S") #记录时间 echo $time $VmRSS $VmSize >>"$LOG" #写入LOG echo $time $VmRSS $VmSize sleep 10 #间隔10s统计一次 PID=$(ps -rf | grep $PROCESS | grep -v grep | awk '{print $2}') done上述脚本程序记录输出的结果示例如下: 2020-07-01 00:00:10 VmRSS: 123456KB VmSize: 456789456KB