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 #删除文件
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)