linux下交换内存耗尽如何查看及如何处理。以及查看shell脚本描述。交换内存不足时,启动应用时会报内存不足。

1、启动应用时报内存不足,直接linux命令行top查看下。swap used100%,0free。

276673727a9acd16d425351a6e548acb.png

2、reboot服务器能有效的释放swap,可是很多情况下是不能重启服务器的。这时就要弄明白是什么占着内存。查看下/proc目录下内容,发现很多数字命名的目录,这些就是linux的进程了。

3e936ba66271b3f0488ccbe60c950a2b.png

3、要让进程释放swap的方法只有kill掉该进程了。写个脚本来查看具体是哪些进程占着内存啦。

一、对/proc目录下所有以数字为名的目录进行遍历

二、1目录是根进程重启会导致系统重启,所以直接排除掉。

三、算出每个进程占用内存的大小,然后按照大小排序

四、输出内存占用大于1mb的进程

78aef1ba0aad209514aa41b553eee7c0.png

4、将运行结果保存到swap.log文件中

6e910ca47e94954e046e2b9b7817b29c.png

5、查看swap.log.10325这个进程内存占用最多有130几m。

346dd16edf0513aaaef6cd02d9f897b1.png

6、直接kill掉,然后再top查看。ok,swap一下子释放了很多,搞定。

604b9d0fa072657af2ee4bc22a83cd3d.png

注意事项:proc目录下1目录不能直接kill掉。

Logo

更多推荐