内存不足导致进程被强制终止,是低配置服务器最常见的噩梦。当流量突增或运行内存密集型任务时,Linux内核会启动OOM Killer(内存不足杀手)直接干掉占用内存最多的进程,往往连招呼都不打。交换空间(Swap)的作用就是在磁盘上划出一块"溢流区",让内核先把不活跃的内存页搬过去,争取时间而不是直接杀人。
Ubuntu 26.04默认不启用交换空间,需要手动配置。本文演示创建2GB交换文件、设置开机自动挂载、以及针对服务器负载调整交换倾向值的完整流程。所有操作均在命令行完成,无需图形界面。
![]()
动手之前先确认当前状态。执行free -h查看内存和交换空间使用情况。如果Swap一行显示0B,说明系统尚未配置交换空间,可以继续操作。
创建交换文件分三步。首先用fallocate分配2GB空间:sudo fallocate -l 2G /swapfile。这个命令比传统的dd快得多,瞬间完成。接着限制文件权限:sudo chmod 600 /swapfile。权限必须设为600(仅root可读可写),如果其他用户能读取交换文件,内核会直接拒绝挂载,这是安全硬性要求。最后格式化:sudo mkswap /swapfile,完成后系统会提示UUID信息。
激活交换空间同样三步验证。执行sudo swapon /swapfile立即启用,然后用sudo swapon --show查看已激活的交换设备,最后用free -h确认Swap行显示2.0Gi。此时交换空间已生效,但重启后会丢失——因为还没写入fstab。
持久化配置需要编辑/etc/fstab。先备份原文件:sudo cp /etc/fstab /etc/fstab.bak。然后追加交换条目:echo '/swapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab。用grep swap /etc/fstab确认写入成功。这行配置的含义是:/swapfile作为交换空间,使用默认挂载选项,不备份、不fsck检查。
最后调整交换倾向值(swappiness)。这个参数控制内核多积极地把内存搬到交换空间,范围0到100。Ubuntu默认通常是60,对桌面系统合适,但服务器建议调低。执行cat /proc/sys/vm/swappiness查看当前值。编辑/etc/sysctl.conf,添加一行vm.swappiness=10,然后sudo sysctl -p立即生效。设为10意味着内核会尽量保留物理内存给活跃进程,只在必要时使用交换空间,避免磁盘I/O拖慢服务响应。
至此配置完成。交换空间已激活,重启后自动挂载,参数针对服务器优化。后续可根据实际负载监控调整:如果频繁触发交换且性能下降,考虑升级物理内存;如果交换空间长期闲置,当前配置已足够缓冲突发流量。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.