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

Linux下swap耗尽该怎么办?如何释放swap,第1张

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掉。

  swapon -s

 若返回的信息概要是空的,则表示 Swap 文件不存在。

 dd if=/dev/zero of=/swapfile bs=1024 count=4194304

 【参数说明】

 if=文件名:输入文件名,缺省为标准输入。即指定源文件。<if=input file >

 of=文件名:输出文件名,缺省为标准输出。即指定目的文件。<of=output file >

 bs=bytes:同时设置读入/输出的块大小为bytes个字节

 count=blocks:仅拷贝blocks个块,块大小等于bs指定的字节数。

 mkswap /swapfile

 swapon /swapfile

 用 vim 打开 /etc/fstab 文件,在其最后添加如下一行:

 /swapfile   swap   swap    defaults 0 0

 当下一次系统启动时,新的swap文件就打开了。

chown root:root /swapfile 

chmod 0600 /swapfile

9、删除SWAP分区

  swapoff  /swapfile  #卸载swap文件

  并修改/etc/fstab文件 #从配置总删除

  rm -rf /swapfile  #删除文件


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7444201.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存