添加 Linux 的虚拟内存(swap)并启用 EarlyOOM 以避免系统无响应

在 Linux 的默认策略中,当物理内存被完全耗尽后,系统才会触发 OOM Killer 操作,这通常会导致系统变得非常缓慢甚至完全无响应。对此,我们通过启用虚拟内存和 EarlyOOM 的方式优化系统的内存行为。

温馨提示:本教程配套操作视频,教程视频中文本均可直接从视频中复制,请放心食用。

启用虚拟内存(swap)

首先,我们查看一下系统已经启用的物理内存和虚拟内存。

在终端执行:

free -h
Bash

Mem 代表物理内存,Swap 代表虚拟内存。

下面是 RedHat 推荐的虚拟内存大小表(在本地硬盘容量充足的情况下):

物理内存大小推荐的虚拟内存大小如果启用休眠,推荐的虚拟内存大小
< 2GB2 倍物理内存3 倍物理内存
2GB - 8GB与物理内存相同2 倍物理内存
8GB - 64GB至少 4GB1.5 倍物理内存
> 64GB至少 4GB(不推荐启用休眠)

你可以根据自己的机器情况选择需要的虚拟内存大小。

下一步,我们来创建虚拟内存文件并启用,在终端执行(请将虚拟内存大小更改为你需要的大小):

sudo dd if=/dev/zero of=/swapfile bs=1M count=<虚拟内存大小(单位:M,1G=1000M)>
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
Bash

默认情况下,Linux 不会自动在开机时自动挂载虚拟内存文件,为此,请使用你熟悉的文本编辑器编辑 /etc/fstab,并在文件末尾添加:

/swapfile swap swap defaults 0 0
Bash

安装并启用 EarlyOOM

EarlyOOM 可以在内存占用超过 90%(可更改设置)时提前触发 OOM Killer,杀死内存占用过大的进程,以防止内存完全耗尽后造成系统无响应。

对于 Debian 系列(Debian、Ubuntu),在终端执行:

sudo apt install earlyoom
sudo systemctl enable --now
Bash

此作品(添加 Linux 的虚拟内存(swap)并启用 EarlyOOM 以避免系统无响应)基于 CC-BY-NC-SA 4.0 协议授权。

转载请注明来源:作者:CodeZhangBorui,链接:https://codezhangborui.com/2024/11/enable-swapfile-for-linux-and-install-earlyoom/

暂无评论

发送评论 编辑评论


				
上一篇
下一篇