Linux下swap耗尽该怎么办?如何释放swap

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下swap耗尽该怎么办?如何释放swap相关的知识,希望对你有一定的参考价值。

Linux下交换内存耗尽如何查看及如何处理。以及查看shell脚本描述。交换内存不足时,启动应用时会报内存不足。
1、启动应用时报内存不足,直接Linux命令行top查看下。swap used100%,0free。

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

3、要让进程释放swap的方法只有kill掉该进程了。写个脚本来查看具体是哪些进程占着内存啦。
一、对/proc目录下所有以数字为名的目录进行遍历
二、1目录是根进程重启会导致系统重启,所以直接排除掉。
三、算出每个进程占用内存的大小,然后按照大小排序
四、输出内存占用大于1MB的进程

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

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

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

注意事项:proc目录下1目录不能直接kill掉。
参考技术A 先重启 然后再慢慢跟踪下内存使用情况 如果有问题的进程可以看下是否kill还是优化 最后再决定是否升级

以上是关于Linux下swap耗尽该怎么办?如何释放swap的主要内容,如果未能解决你的问题,请参考以下文章

Linux 下释放内存,swap交换区缓存

linux下清理内存以及swap

Linux系统下创建swap交换分区

Linux内存机制以及手动释放swap和buffer和cache

Linux内存机制以及手动释放swap和buffer和cache

centos下设置swap分区的大小