平时经常要调试查看java 进程内存占用情况,手动的方式,
top
ps aux
之类的命令不是很直观
于是写了个工具直观的按照倒排序方式显示java进程内存占用情况。
ubuntu@ubuntu:/var/server/software$ cat showMemory.sh
#!/usr/bin/env bash
procIdList=$(jps -l | awk '{ print $1 }')
info="";
for id in $procIdList
do
procName=$(jps -l | grep $id | awk '{ print $2 }')
if [ -f /proc/$id/status ]; then
memSizeInKB=$(cat /proc/$id/status | grep VmRSS | awk '{ print $2 }')
#memSizeInMB=`expr $memSizeInKB / 1024 `
memSizeInMB=`echo "scale=3; $memSizeInKB / 1024" | bc `
info="${info}\n进程id: ${id} 进程名: ${procName} 内存 ${memSizeInMB} MB"
fi
done
echo -e $info | sort -n -r -k 6
这样一目了然,指定当前设备的Java内存占用情况。
方便发现问题。