在Linux系统中,Swap(交换空间)扮演着至关重要的角色,它是一块特殊的硬盘空间,当物理内存(RAM)不足时,操作系统会将内存中暂时不活跃的数据移动到这块空间中,从而释放出宝贵的物理内存给当前活跃的进程使用,对于像CentOS 6.5这样的较旧系统,合理配置Swap空间尤其重要,可以有效避免因内存耗尽而导致系统卡顿或服务崩溃,本文将详细介绍在CentOS 6.5中创建、配置和优化Swap空间的完整流程。

准备工作与现状检查
在开始操作之前,首先需要以root用户或具有sudo权限的用户身份登录系统,检查当前系统是否已经配置了Swap以及其大小,我们可以使用以下两个命令来完成这一步:
使用
free命令查看内存和Swap使用情况:free -m
该命令会以兆字节(MB)为单位显示内存信息,关注“Swap”一行,如果其“total”值为0,则表示系统尚未配置Swap。
使用
swapon命令查看当前激活的Swap设备:swapon -s
如果此命令没有任何输出,同样确认了系统当前没有启用Swap。
第一步:创建Swap文件
创建Swap空间最常见和灵活的方法是创建一个Swap文件,我们将使用dd命令来创建一个指定大小的文件,这里以创建一个2GB大小的Swap文件为例。
dd if=/dev/zero of=/swapfile bs=1M count=2048
命令解释:
if=/dev/zero:输入文件,/dev/zero是一个特殊的字符设备,它会提供源源不断的空字符(null)。of=/swapfile:输出文件,我们将Swap文件创建在根目录下,命名为swapfile。bs=1M:块大小为1MB。count=2048:创建2048个块,总大小即为 2048MB = 2GB。
执行过程需要一些时间,请耐心等待,完成后,可以使用ls -lh /swapfile命令确认文件大小是否正确。
第二步:设置文件权限
为了系统安全,Swap文件应该只允许root用户读写,我们需要设置其权限为600。
chmod 600 /swapfile
执行后,只有root用户才能读写该文件,防止其他用户恶意访问或修改。
第三步:格式化并启用Swap
需要将这个刚创建的文件格式化为Swap格式,然后立即启用它。
格式化文件为Swap格式:

mkswap /swapfile
执行后,系统会提示设置Swap标签和UUID。
启用Swap文件:
swapon /swapfile
此命令会立即激活我们创建的Swap文件,系统开始使用它。
第四步:验证Swap状态
再次使用之前提到的命令来验证Swap是否已经成功启用。
free -m swapon -s
free -m的输出中“Swap”行的“total”值应该显示为2048,swapon -s则会列出/swapfile及其相关信息,这表明Swap空间已经成功创建并投入使用。
第五步:设置开机自动挂载
目前我们创建的Swap文件在系统重启后不会自动挂载,为了使其永久生效,需要将其信息添加到/etc/fstab文件中。
使用文本编辑器(如vi或nano)打开/etc/fstab文件:
vi /etc/fstab
在文件末尾添加以下一行内容:
/swapfile swap swap defaults 0 0 各字段含义:
/swapfile:设备文件名或路径。swap:挂载点,对于Swap来说,此处固定写为swap。swap:文件系统类型,此处固定写为swap。defaults:挂载选项,使用默认值即可。0:表示是否被dump备份,0表示不备份。0:表示开机时是否使用fsck检查磁盘顺序,0表示不检查。
保存并退出文件后,Swap空间就会被配置为开机自动挂载。
进阶优化:调整Swappiness参数
swappiness是Linux内核的一个参数,用于控制内核使用Swap的积极程度,其值范围是0-100。
- 值越高(如100):内核会越积极地使用Swap,即使物理内存还有剩余。
- 值越低(如0):内核会尽量避免使用Swap,直到物理内存非常紧张时才使用。
对于服务器环境,通常建议将此值设置得较低(如10),以优先使用物理内存,保证应用性能,对于桌面环境,可以适当调高。

查看当前swappiness值:
cat /proc/sys/vm/swappiness
CentOS 6.5的默认值通常是60。
临时修改swappiness值:
sysctl vm.swappiness=10
永久修改swappiness值:
编辑/etc/sysctl.conf文件,在文件末尾添加:vm.swappiness = 10保存后,该设置将在下次重启时生效,也可以使用
sysctl -p命令立即加载配置。
至此,我们已经在CentOS 6.5上完整地配置并优化了Swap空间。
相关问答FAQs
Q1: 我应该如何确定我的Swap文件大小?
A: Swap大小的设定没有绝对标准,但有一些通用的经验法则,对于现代系统,如果物理内存较大(如16GB以上),Swap可以设置为与RAM相等甚至更少,但对于像CentOS 6.5这样的旧系统,或者物理内存较小的环境(如小于4GB),一个常见的建议是:
- RAM < 2GB: 设置为RAM的2倍。
- 2GB ≤ RAM < 8GB: 设置为与RAM相等。
- RAM ≥ 8GB: 设置为4GB或8GB通常就足够了。
最终大小还需根据服务器上运行的应用类型和负载来决定,运行内存密集型应用(如大型数据库)的服务器可能需要更多的Swap空间。
Q2: 我可以删除一个正在使用的Swap文件吗?
A: 不可以直接删除一个正在被系统使用的Swap文件,这可能导致数据丢失或系统不稳定,正确的步骤是先禁用它,然后再删除,具体操作如下:
- 禁用Swap文件:
swapoff /swapfile
- 删除文件:
rm /swapfile
- 清理配置(重要!): 记得从
/etc/fstab文件中删除之前添加的那行/swapfile swap swap defaults 0 0,否则系统重启时会因为找不到该文件而报错。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复