如何在不重启的情况下清除 Linux 中的 Swap 空间?

1. 写在前面

你是否正在寻找一种无需重启系统即可清除 Linux Swap 空间的方法?本文将通过示例介绍具体方法。

2. 修改/刷新 Linux Swap

要在不重启的情况下清除 Linux Swap,需要了解交换容量(swappiness)的概念。交换容量指的是内核参数,它决定数据从 RAM 转移到 Swap 的频率和数量。

swappiness 参数值可设置范围在 0 到 100 之间。此参数值越低,就会让 Linux 系统尽量少用 Swap 分区,多用内存,参数值越高就是反过来,使内核更多的去使用 Swap 空间。Ubuntu 系统 swappiness 默认值为 60,表示的含义可以这样来理解,当剩余物理内存低于40%(40=100-60)时,开始使用 Swap 分区。

要检查当前的 swappiness 设置比例,请使用 cat /proc/sys/vm/swappiness 命令。要临时更改交换度值,请使用 sudo sysctl vm.swappiness=x(用所需值替换 x)。

示例:

检查 Swap 设置:

root@dev:~# cat /proc/sys/vm/swappiness
--------------------------------------------------------------------------------------
60

临时设置 Swap 设置:

root@dev:~# sudo sysctl vm.swappiness=50
--------------------------------------------------------------------------------------
vm.swappiness = 50


root@dev:~# cat /proc/sys/vm/swappiness
--------------------------------------------------------------------------------------
50

永久设置,重启后仍然生效:

vi /etc/sysctl.conf
# 添加
vm.swappiness=0

或者直接写入

echo 'vm.swappniess=0'>>/etc/sysctl.conf

刷新 Swap:

在清除交换内存之前,请确保有足够的可用内存支持该操作。使用 free -m 命令检查交换内存和内存的空间。

要清除交换内存(将 Swap 里的数据转储回内存,并清空Swap里的数据),请使用 swapoff -a 禁用交换,等待一会,然后使用 swapon -a 再次启用交换。

swapoff -a && swapon -a

通过这些步骤,可以检查、修改并有效清除 Linux 中的交换内存,而无需重启系统。切记要根据系统需求和可用资源,谨慎调整交换值。

命令整理:

命令 描述
cat /proc/sys/vm/swappiness 显示当前的交换度值
sudo sysctl vm.swappiness=x 将交换度值更改为 “x
free -m 显示交换内存和内存的当前使用情况和可用性
sudo swapoff -a 禁用交换
sudo swapon -a 启用交换

3. 优化不同场景下 Swappiness 配置

场景 建议交换值
台式机/笔记本电脑,内存不超过 4GB,硬盘存储空间 10 or 0
配备充足内存和 SSD 存储的服务器 60 或以上
虚拟化环境 30~60,负载而定

更改后请监控系统性能,并根据需要进行调整,以便在内存使用和响应速度之间达到理想的平衡。

感谢您花时间阅读文章!

收藏本站不迷路!



原文始发于微信公众号(滑翔的纸飞机):如何在不重启的情况下清除 Linux 中的 Swap 空间?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/260778.html

(0)
土豆大侠的头像土豆大侠

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!