Linux下如何排查CPU及内存占用过多
CPU
- 使用
top
命令,然后按shift+p
按照CPU排序,找到占用CPU过高的进程pid。 - 使用
top -H -p pid
命令,找到进程中消耗资源最高的线程ppid。 - 使用
echo ‘obase=16;ppid’ | bc
或者print “%x\n” ppid
将线程id转换为16进制(小写)。 - 使用
jstack pid | grep -A 10 ppid(16进制)
查看线程状态信息。
内存
free -m
查看剩余内存(单位M)。- 使用
ps aux | head -1;ps aux | grep -v PID | sort -rn -k +4 | head -10
查看内存占用高的前10个进程。 - 使用
slabtop
动态查看内存占用。