Linux虚拟内存(swap空间)设置
目录
当我们使用阿里云 ECS 服务器,运行 Linux 操作系统时,如果物理内存不足,可以通过设置虚拟内存(也称为交换空间或swap空间)来使用磁盘空间作为额外的内存资源。
配置修改
以阿里云ECS Anolis OS 8.2 RHCK 64位操作系统为例,创建并配置一个大小为2G的交换文件:
|
|
设置swappiness参数
- 查看当前的swappiness值:使用
cat /proc/sys/vm/swappiness
命令可以查看当前的swappiness值。 - 临时更改swappiness值:可以使用sysctl命令临时更改swappiness值,例如,将swappiness值设置为10,可以使用命令
sudo sysctl vm.swappiness=10
。这种更改在系统重启后会失效。 - 永久更改swappiness值:为了在系统重启后保持更改,需要将新的swappiness值添加到
/etc/sysctl.conf
文件中。编辑该文件,添加或修改行vm.swappiness=10
(以你希望的值为准),然后保存并关闭文件。之后,运行sudo sysctl -p
命令来重新加载配置,使更改生效。
设置swappiness参数的意义
Swappiness参数的值范围从0到100,不同的值代表了内核在物理内存和交换空间之间选择的不同策略:
- 低值(如0或接近0):内核会尽量避免使用交换空间,即使物理内存使用率达到较高水平,也会优先保留物理内存中的数据,这有助于减少磁盘I/O操作,提高系统响应速度。然而,在某些情况下,如果物理内存真的非常紧张,系统仍然可能会使用交换空间。
- 高值(如100):内核会积极使用交换空间,即使物理内存还有剩余空间,也可能会将一些不常用的内存页面交换到磁盘上,以释放物理内存供其他进程使用。这种做法可能会导致频繁的磁盘I/O操作,降低系统性能。
- 中间值(如默认值60):内核会在物理内存使用到一定程度后(如剩余物理内存低于40%),开始考虑使用交换空间。这是一个折衷的方案,旨在平衡内存使用和磁盘I/O性能。
交换空间(Swap Space)是硬盘上的一个特殊区域,被操作系统用作虚拟内存。当系统的物理内存(RAM)不足时,操作系统会将一部分数据移动到交换空间,以释放RAM上的空间,这个过程被称为“交换”(Swapping)或“页面交换”(Paging)。交换空间的存在确保了系统能够在物理内存不足时继续运行,而不会因内存耗尽而崩溃。