**linux内存几乎占满 **
如图
排查问题
使用top命令
发现 进程3034 占比非常高
这行命令能看出top500 的内存进程
发现java的进程内存 占比非常高 但cpu使用率不高
ps p 3034 -L -o pcpu,pmem,pid,tid,time,tname,cmd
查看该进程
发现该进程下好多个线程 占据内存空间
我们知道 每一个线程 都会有独自的栈空间 计数器 等 占据内存的东西
查看内存使用的堆栈:在这里我们挑选了TID=3051的线程进行分析,首先需要将3051这个id转换为16进制。需输入如下命令,
出错 查询堆栈信息
只能jstack pid为16进制的进程 先转换
Error attaching to remote server: java.rmi.UnknownHostException: Unknown host: bda; nested exception is:
java.net.UnknownHostException: bda
定位到具体进程 如无 代码错误 最简单就是kill -s 9 pid 号
强制杀死进程
立马释放了一般内存
参考文庄java排查
https://blog.csdn.net/yangfengjueqi/article/details/85756520