在服务器管理中,**交换空间(Swap)**是硬盘上的一个区域。当物理内存(RAM)不足时,操作系统会将部分不常用的数据临时存放到交换空间,以保障系统的稳定运行。本文将介绍在不同操作系统下,如何查看和配置 Swap 空间,帮助你更好地管理服务器资源。

1. 手动添加 Swap 交换分区

1.1 查看当前 Swap 空间大小

使用以下命令可以快速查看当前 Swap 空间的使用情况:

free -h

1.2 创建和配置 Swap 文件

按照以下步骤为服务器添加新的 Swap 空间:

  1. 创建交换文件

以 1GB 为例,执行:

fallocate -l 1G /swapfile
  1. 设置交换文件权限

仅允许 root 用户访问,保障安全:

chmod 600 /swapfile
  1. 将文件标记为交换空间
mkswap /swapfile
  1. 启用交换空间
swapon /swapfile

1.3 设置 Swap 空间开机自动挂载

  1. 编辑 fstab 文件:
vim /etc/fstab
  1. 在文件末尾添加以下内容,使 Swap 文件在每次开机时自动启用:
/swapfile none swap defaults 0 0

1.4 调整 Swap 使用策略(可选)

  • swappiness 参数用于控制系统对 Swap 的使用倾向,范围为 0-100。值越大,系统越倾向于使用 Swap;值越小,则优先使用物理内存。
  • 临时调整(立即生效,重启后失效):
sysctl vm.swappiness=10
  • 永久调整(重启后依然生效):
  1. 编辑配置文件 /etc/sysctl.conf,添加或修改以下行:
vm.swappiness = 10
  1. 保存后执行以下命令使设置立即生效:
sysctl -p

小结

通过以上步骤,你可以灵活管理服务器的 Swap 空间,提升系统的稳定性和性能。

2. 脚本添加 Swap 交换分区

2.1 创建脚本文件

  1. 新建脚本文件:
vim add_swap.sh
  1. 将以下内容粘贴至脚本文件并保存:
#!/bin/bash


fallocate -l 4G /swapfile || dd if=/dev/zero of=/swapfile bs=1M count=4096

# 设置权限
chmod 600 /swapfile

# 格式化为 swap
mkswap /swapfile

# 启用 swap
swapon /swapfile

# 设置开机自动挂载
grep -q '^/swapfile' /etc/fstab || echo '/swapfile none swap sw 0 0' >> /etc/fstab

# 可选:降低 swap 使用优先级(更倾向用物理内存)
sysctl vm.swappiness=10
echo 'vm.swappiness=10' >> /etc/sysctl.conf

# 增加对元数据缓存的保护,减少机械硬盘 IO 压力
sysctl vm.vfs_cache_pressure=50
grep -q 'vm.vfs_cache_pressure' /etc/sysctl.conf || echo 'vm.vfs_cache_pressure=50' >> /etc/sysctl.conf

# 显示 swap 信息确认
echo -e "\n✅ Swap 添加完成,当前状态如下:"
swapon --show
free -h

2.2 赋予脚本执行权限并运行

在终端执行以下命令:

chmod +x add_swap.sh && sudo ./add_swap.sh

2.3 脚本执行后输出示例

运行脚本后,终端会显示如下信息:

sudo: unable to resolve host host-192-168-6-20: Name or service not known
Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
no label, UUID=993cae10-5ea9-412d-90bb-5ce7241440c1
vm.swappiness = 10
✅ Swap 添加完成,当前状态如下:
NAME      TYPE SIZE USED PRIO
/swapfile file   4G   0B   -2
              total        used        free      shared  buff/cache   available
Mem:           972Mi       380Mi       541Mi       548Ki       189Mi       592Mi
Swap:          4.0Gi          0B       4.0Gi

2.4 查看内存与 Swap 状态

使用如下命令检查内存和 Swap 状态:

free -h

输出示例:

              total        used        free      shared  buff/cache   available
Mem:           972Mi       381Mi       540Mi       548Ki       189Mi       591Mi
Swap:          4.0Gi          0B          4.0Gi

3. 小结

  • 通过上述脚本可一键配置 4G Swap 文件,提升服务器内存管理能力。
  • 推荐在内存较小的 VPS 或开发环境中使用,操作简便、安全高效。
  • 若需调整 Swap 大小,只需修改脚本中的 4G 和 count=4096参数即可。

标签: 交换空间, 内存管理, 系统配置, 脚本自动化, swap-file

添加新评论