Linux 配置交换空间(Swap)解决内存不足

🚀 作者主页: 有来技术

🔥 开源项目: youlai-mall︱vue3-element-admin︱youlai-boot︱vue-uniapp-template

🌺 仓库主页: GitCode︱ Gitee ︱ Github

💖 欢迎点赞 👍 收藏 ⭐评论 📝 如有错误敬请纠正!

目录

    • 前言
    • [1. 🔍 检查当前交换空间](#1. 🔍 检查当前交换空间)
    • [2. 📂 创建交换文件](#2. 📂 创建交换文件)
    • [3. 🔐 设置文件权限](#3. 🔐 设置文件权限)
    • [4. ⚙️ 将文件设置为交换空间](#4. ⚙️ 将文件设置为交换空间)
    • [5. ✔️ 启用交换空间](#5. ✔️ 启用交换空间)
    • [6. ✅ 验证交换空间](#6. ✅ 验证交换空间)
    • [7. 🔄 设置开机自动挂载](#7. 🔄 设置开机自动挂载)
    • [8. ⚙️ 调整交换空间使用策略(可选)](#8. ⚙️ 调整交换空间使用策略(可选))
    • 注意事项

前言

在 CentOS 系统中,交换空间(Swap)用于在物理内存不足时,临时将部分数据存储到硬盘上,以释放内存供其他进程使用。合理配置交换空间可以提升系统的稳定性和性能。


1. 🔍 检查当前交换空间

首先,使用 free -h 命令查看当前系统的交换空间使用情况:

bash 复制代码
free -h

如果输出中没有显示交换空间,说明当前未配置交换空间。

2. 📂 创建交换文件

在 CentOS 中,您可以通过创建交换文件来添加交换空间。假设您希望创建一个 2GB 的交换文件,执行以下命令:

bash 复制代码
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048

这将创建一个名为 /swapfile 的 2GB 大小的文件。

交换空间大小建议

通常,交换空间的大小应根据物理内存来配置。常见的配置建议如下:

物理内存 ≤ 4GB:交换空间通常配置为物理内存的两倍,所以 4GB 内存的服务器应该配置 8GB 的交换空间。

物理内存 > 4GB:交换空间一般配置为物理内存大小加上 2GB,例如 8GB 内存的服务器可以配置 10GB 的交换空间。

3. 🔐 设置文件权限

为确保交换文件的安全性,设置文件权限:

bash 复制代码
sudo chmod 600 /swapfile

4. ⚙️ 将文件设置为交换空间

使用 mkswap 命令将文件设置为交换空间:

bash 复制代码
sudo mkswap /swapfile

5. ✔️ 启用交换空间

启用刚刚创建的交换空间:

bash 复制代码
sudo swapon /swapfile

6. ✅ 验证交换空间

再次使用 free -h 命令确认交换空间已成功添加。

7. 🔄 设置开机自动挂载

为了在系统重启后自动启用交换空间,需要将其添加到 /etc/fstab 文件中:

bash 复制代码
echo '/swapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab

8. ⚙️ 调整交换空间使用策略(可选)

vm.swappiness 参数控制内核将内存页交换到交换空间的倾向,取值范围为 0 到 100,默认 60。值越低,表示内核倾向于保留数据在内存中,只有在内存紧张时才使用交换空间。

查看当前值:

bash 复制代码
cat /proc/sys/vm/swappiness

要临时修改该值(例如设置为 30):

bash 复制代码
sudo sysctl vm.swappiness=30

要永久修改,请编辑 /etc/sysctl.conf 文件,添加或修改以下行:

bash 复制代码
vm.swappiness=30

然后,应用更改:

bash 复制代码
sudo sysctl -p

注意事项

  • 交换空间大小:根据系统的物理内存大小,合理配置交换空间。一般建议交换空间大小为物理内存的 1 到 2 倍,但对于内存较大的系统,交换空间可以适当减少。
  • 性能影响:频繁使用交换空间可能会导致系统性能下降,因为硬盘的读写速度远低于内存。
  • 交换分区与交换文件:交换分区通常性能更好,但交换文件更灵活,易于调整大小。根据实际需求选择合适的方式。
相关推荐
水饺编程12 分钟前
第2章:Linux 基础,删除用户
linux·c语言·汇编
Novproxy_Z15 分钟前
机房 IP 和住宅 IP 怎么区分?IP ASN、归属信息检测脚本
linux·网络·tcp/ip
2601_9654542317 分钟前
AI视频制作:做历史建筑视频,宫殿园林的老图难找,AI怎么自动配古建素材?
运维·人工智能·音视频
mounter62531 分钟前
深入理解 Linux blk-iocost:基于虚拟时间的 I/O 资源控制与 BPF 扩展
linux·linux kernel·kernel
码少女34 分钟前
Linux——网络层-IP协议以及路由选择
linux·网络·网络协议·tcp/ip
Ivanqhz39 分钟前
MoE 原理、TC/EC 路由、LSH-MoE 与负载均衡浅析
运维·网络·人工智能·深度学习·算法·机器学习·负载均衡
Starry-sky(jing)1 小时前
crane 下载镜像:不连接 Docker,3 步准备并校验 ARM64 离线包
运维·docker·arm64·crane
qeen871 小时前
【Linux】Ext2文件系统介绍
linux·服务器
古法老登瞎折腾1 小时前
大数据智能运维实战(八):从调度任务追到计算引擎——补齐排查链路
java·大数据·运维·spring ai·mcp
zhongben123_1 小时前
从0到1开发一款生鲜配送APP:核心技术难点与架构避坑指南
大数据·运维·人工智能·ios·架构·web app