大家好!在管理Linux服务器时,您是否曾遇到过“Memory exhausted”或“Out of Memory”等可怕消息,或者服务器突然变慢的经历? 😨 这些问题大多是由于RAM(内存)不足引起的。
当应用程序所需的内存超过实际物理RAM容量时,就会出现问题。在这种情况下,我们的救星就是Swap(交换空间)!
今天,我们将详细了解如何借用服务器硬盘(或SSD)空间的一部分作为虚拟内存,即如何创建交换文件并将其应用于系统。那么,我们开始吧? 🚀

🤔 稍等,什么是Swap?
简单来说,Swap可以很容易地理解为“RAM的扩展空间”。
- RAM (书桌 📚): CPU当前工作使用的快速且昂贵的内存。
- Swap (书桌旁的辅助抽屉 🗄️): 当RAM已满时,暂时将不立即使用的数据移至硬盘上的空间。
当然,硬盘比RAM慢得多,所以过度使用Swap并不好。但是,总比因为内存不足导致服务完全中断要好得多,对吧?它在紧急情况下对显著提高系统稳定性起着重要作用。
✅ 步骤1: 创建交换文件 📂
首先,您需要创建一个用作交换空间的文件。这是在硬盘上“预留”一部分空间,声明“我要用这么多作为交换空间!”的过程。这里,我们将创建一个名为/swfile,大小为1024MB(1GB)的文件。
1. 使用dd命令创建文件
打开终端并输入以下命令。(需要root权限,所以请加上sudo!)
sudo dd if=/dev/zero of=/swfile bs=1M count=1024
命令看起来有点复杂,对吧?我们来逐一查看。
- sudo: 以管理员权限执行命令。
- dd: 一个用于处理磁盘或文件的强大命令。
- if=/dev/zero: 使用充满零的数据作为输入源。也就是说,创建一个空文件。
- of=/swfile: 在 / (根目录)下创建一个名为swfile的文件。
- bs=1M: 每次传输1MB大小(块)的数据。
- count=1024: 重复上述设置的1MB大小的块1024次。
- 结果: 创建了一个1MB * 1024 = 1024MB = 1GB大小的文件! 🎉
2. 安全设置是必须的! 🔐
交换文件可能存储从内存中卸载的敏感信息(例如:密码、个人信息等)。因此,必须限制权限,只允许系统(root用户)读写此文件。
sudo chmod 600 /swfile
- chmod 600: 这是一个更改文件权限的命令。600表示“只有所有者(root)可以读写,其他用户不能做任何事情”。这是非常重要的安全步骤,请务必执行!
✨ 步骤2: 将文件转换为交换空间!
现在,/swfile只是一个充满零的普通文件。我们需要对其进行格式化,以便Linux内核将其识别为“啊,这是交换空间!”
sudo mkswap /swfile
- mkswap: “Make Swap”的缩写,这是一个将指定文件或分区初始化为交换区域的命令。现在系统已准备好将/swfile用作交换空间。
🚀 步骤3: 立即激活并验证交换空间
准备工作已完成!现在是时候命令系统:“立即使用这个交换文件!”
1. 激活交换空间
sudo swapon /swfile
- swapon: 这是一个激活交换设备的命令。执行此命令后,系统将立即开始使用/swfile作为虚拟内存。
2. 让我们检查是否已正确应用? ✅
我们确实需要验证交换空间是否已成功应用,对吧?您可以使用以下命令进行检查。
sudo swapon --show
如果结果如下所示,则表示成功!
NAME TYPE SIZE USED PRIO
/swfile file 1G 0B -2
您还可以使用free -h命令一目了然地查看整体内存情况。
free -h
total used free shared buff/cache available
Mem: 3.8Gi 1.1Gi 2.1Gi 2.0Mi 634Mi 2.5Gi
Swap: 1.0Gi 0B 1.0Gi
如果在Swap项中看到1.0Gi,则表示已完美应用!
💾 步骤4: 重启也没关系!永久设置
恭喜!交换文件已激活。但是,此设置是临时的,如果重启服务器,交换空间将停用。 😱
您需要修改配置文件,以便系统在每次重启时自动加载交换文件。此设置由/etc/fstab文件负责。
将交换信息添加到/etc/fstab文件
执行以下命令将自动在文件的最后一行添加交换设置。
echo '/swfile swap swap defaults 0 0' | sudo tee -a /etc/fstab
- 这一行的意思是:“系统啊,每次启动时,请将/swfile作为swap类型,使用默认(defaults)选项激活!”
现在,即使您重启服务器,交换文件也将自动激活。真的很简单,对吧?
结语
今天,我们学习了如何创建和应用交换文件,这可以提高Linux服务器的稳定性。
1. 使用dd创建文件 📂
2. 使用chmod设置安全 🔐
3. 使用mkswap格式化交换空间 ✨
4. 使用swapon立即激活 🚀
5. 注册到/etc/fstab以永久应用 💾
现在,您可以稍微减少因内存不足而导致服务突然中断的担忧了。 🥳 希望本指南对您的服务器管理有很大帮助!
标签: Linux, Swap, 虚拟内存, 服务器管理, Ubuntu, CentOS, 内存不足
发表回复