必须立即创建并启用swap交换分区以防止OOM killer终止进程;推荐用dd命令创建2GB swap文件(sudo dd if=/dev/zero of=/swapfile bs=1G count=2),再设权限600、mkswap格式化、swapon启用,并写入/etc/fstab持久化。

当Linux服务器运行内存密集型任务时,物理内存可能被迅速耗尽,导致进程被OOM killer强制终止;此时必须立即创建并启用swap交换分区,为系统提供应急虚拟内存空间。
用文件方式创建swap(推荐:无需重装、适合云服务器和磁盘紧张环境)
第一步:创建2GB大小的swap文件,使用dd命令写入零字节数据,避免残留内容干扰:
sudo dd if=/dev/zero of=/swapfile bs=1G count=2
这一步不能用fallocate替代——某些旧版内核或XFS文件系统上,fallocate生成的空洞文件会导致mkswap失败,dd最稳妥。
第二步:严格限制文件权限,防止非root用户读取交换区内容(含敏感内存页):
sudo chmod 600 /swapfile
【权限不设为600会导致swapon拒绝启用,且系统日志报错“insecure permissions”】
第三步:将文件格式化为swap类型:
sudo mkswap /swapfile
第四步:立即启用该swap文件:
sudo swapon /swapfile
第五步:验证是否生效:
sudo swapon --show
用独立磁盘分区创建swap(高性能场景首选)
适用于有闲置分区、对I/O延迟敏感的物理服务器。注意:目标分区必须未挂载且无数据,否则mkswap会破坏原有内容。
方法一:确认空闲分区
运行 sudo fdisk -l → 找出未分配或已清空的分区(如/dev/sdb2),确保它不包含任何挂载点(检查mount命令输出)。
方法二:格式化为swap类型
sudo mkswap /dev/sdb2
方法三:启用该分区
sudo swapon /dev/sdb2
让swap开机自动启用
临时启用的swap在重启后失效,必须写入/etc/fstab才能持久化。
① 获取swap文件或分区的UUID(更可靠,避免设备名变动):
sudo blkid /swapfile
② 编辑fstab配置文件:
sudo nano /etc/fstab
③ 在文件末尾新增一行(根据实际类型二选一):
文件方式:/swapfile none swap sw 0 0
分区方式:UUID=xxxx-xxxx-xxxx-xxxx none swap sw 0 0
④ 测试配置语法是否正确(不重启即可验证):
sudo swapon --verify











