如何在Linux中清除交换内存

交换内存通常是一种“设置好后遗忘”的事情。大多数企业环境已在系统中内置了交换功能,并且除非明显存在可用内存不足或者由于OOM杀手(内存不足)错误导致服务器崩溃,否则不会操纵这些内存缓存。但是,在某些情况下,可能会导致管理员需要手动清除系统交换。如果您遇到这种情况,那么您来对地方了。本文讨论了这种情况和所需的解决方案。

有时,即使有可用的RAM,系统也会使用较高百分比的交换内存。罪魁祸首是系统的“混乱”。是的,您没看错……生气。因此,既然您知道了术语,就可以开始研究它的含义了。Swappiness是指内核参数,负责系统将数据从RAM移至交换内存的数量和频率。

默认值为swappiness60;默认值为60。但是,您可以手动将其设置为0-100。较小的值几乎不会发生交换,而较高的值会引起非常积极的交换。值为零将导致完全不发生交换,因此,如果要在不关闭交换的情况下将交换最小化到最低值,则应将其设置为至少一个。

如果您想改变系统的可交换性,则该过程非常简单。您可以通过运行以下命令来检查当前的交换设置:

$ cat /proc/sys/vm/swappiness

它看起来应该像这样: 

图像
cat / proc / sys / vm / swapiness的输出

现在,您可以看到我的系统的swappiness值为30。要更改该值,您需要使用以下命令: 

$ sudo sysctl vm.swappiness=x
(where x is the swap value you wish to set)
图像
sysctl vm.swappiness = 60的输出

要验证您设置的值,只需对swappiness您之前查看的文件进行分类以找出原始值。轻松的一天。既然您了解了控制我们系统上交换行为的基本参数,那么您将准备学习在出现这种情况时如何清除该内存。这是您终端生活中的第一次,这里的事情将变得很容易。  

要清除系统上的交换内存,您只需要循环掉交换即可。这会将所有数据从交换内存移回RAM。这也意味着您需要确保您有RAM来支持此操作。一种简单的方法是运行'free -m'来查看交换和RAM中正在使用的内容。关闭电源后,您可以等待任意时间(约30秒)以完成操作时间,然后重新打开交换器电源。这将清除交换内存缓存并重新启用它。这是您需要的所有命令! 

Check space: # free -m 
Disable swap: # swapoff -a 

Wait approx 30 sec 
(use free -m to see the amount of swap used/available decrease over time)

Enable swap: # swapon -a 

希望,如果您发现自己需要这种修复,此快速提示可以帮助您清除系统交换内存。 

有关交换空间的更多信息,请参阅我的文章,此处概述了基础知识。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值