linux如何释放swap内存
背景
一般情况下系统是不会用到swap的,一般物理内存使用在90%以上(默认是这个数,可以自行在/etc/sysctl.conf里设置vm.swappiness参数)但有的时候,内存会被缓存占用,导致系统开始使用swap空间,此时就需要清理下swap了这里先说下vm.swappiness参数,设置成vm.swappiness=10:就是说当内存使用90%以上才会使用swap空间!
登录相关服务器通过free命令发现确实使用了很大一部分,但men确还有很多,这说明swap在服务器运行过程中使用后并没有释放,下面我们对swap进行释放操作
swappiness参数:
swappiness=0,表示最大限度使用物理内存
swappiness=100,表示积极的使用swap分区
swappiness=30,表示内存占用率大于70%时,开始使用swap分区
cat /proc/sys/vm/drop_caches
drop_caches参数:
0 – 不释放
1 – 释放页缓存
2 – 释放dentries和inodes
3 – 释放所有缓存
临时调整
方法一:
[root@localhost ~]# sysctl vm.swappiness=10
vm.swappiness = 10
[root@localhost ~]# cat /proc/sys/vm/swappiness
10
方法二:
echo 10 > /proc/sys/vm/swappiness
永久调整
[root@localhost ~]# vim /etc/sysctl.conf
vm.swappiness=5 #文件末尾追加此参数
[root@localhost ~]# sysctl -p
vm.swappiness = 5
[root@localhost ~]# cat /proc/sys/vm/swappiness
5
第一步:执行刷盘命令
#sync
1
sync命令用于强制被改变的内容立刻写入磁盘,更新超块信息,以防止释放,sync命令则可用来强制将内存缓冲区中的数据立即写入磁盘中。
sync命令则可用来强制将内存缓冲区中的数据立即写入磁盘中。用户通常不需执行sync命令,系统会自动执行update或bdflush操作,将缓冲区的数据写 入磁盘。只有在update或bdflush无法执行或用户需要非正常关机时,才需手动执行sync命令
第二步:释放所有缓存
#echo 3 > /proc/sys/vm/drop_caches
3
此指令输入立即生效,意在释放所有缓存。
第三步:关闭swap,再开启swap
因为这一步后台在一点一点的释放内存,如果swap配置的比较大,需要等待久一些
#swapoff -a
再开启
#swapon -a
————————————————
原文链接:https://blog.csdn.net/qq_34967770/article/details/128573742
__EOF__
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)