Linux系统临时扩展Swap空间(操作指南)
在日常Linux运维中,当物理内存紧张时,进程可能因OOM killer被强制终止。此时,临时增加swap空间是一种快速有效的应急方案。核心思路非常简单:先创建一个指定大小的文件,然后将其格式化为swap格式,最后激活使用。具体操作分为三个步骤:
第一步,使用 dd 命令生成一个文件作为swap载体。例如以下命令中,/home/swap 指定了交换文件的存放路径,bs=1024 表示块大小为1KB,count=500000 则使总空间达到1024×500000 = 500MB。根据实际需求调整 count 值即可改变swap大小。
# dd if=/dev/zero of=/home/swap bs=1024 count=500000
第二步,使用 mkswap 命令将该文件格式化为swap所需的格式:
# mkswap /home/swap
第三步,通过 swapon 命令激活该swap空间,使其立即生效:
# swapon /home/swap
如果需要关闭临时添加的swap空间,执行相反操作即可:
# swapoff /home/swap
Solaris系统临时扩展Swap空间(操作指南)
Solaris环境下的操作思路相似,但使用的工具和命令有所不同。同样需要先创建一个空文件,再将其添加到swap池中。具体步骤如下:
首先,创建一个目录用于存放swap文件(也可以直接使用已有目录):
# mkdir /swap
然后,使用 mkfile 命令创建一个指定大小的空文件,例如创建一个51200KB(约50MB)的文件:
# mkfile 51200k /swap/s01
接着,通过 swap -a 命令将该文件添加到系统的swap空间池中(-a 参数表示添加):
# swap -a /swap/s01
验证文件是否成功加入,可使用 swap -l 查看详细列表:
# swap -l
如需查看汇总信息(如已用、可用空间),则使用 swap -s:
# swap -s
利用完整磁盘分区作为Swap空间
如果希望直接将整个磁盘分区用作swap,而非依赖文件,可以将块设备名作为 swap 命令的参数。例如:
# swap -a /dev/dsk/c1t1d2s1
但这样做必须确保系统重启后该分区仍被识别为swap。因此需要修改 /etc/vfstab 文件,添加一行类似如下内容(注意各字段用空格或Tab分隔):
/dev/dsk/c1t1d2s1 - - swap - no -
另外,如果后续不再需要某个swap文件或设备,可使用 -d 选项将其从swap空间池中删除:
# swap -d /swap/s01
# swap -d /dev/dsk/c1t1d2s1
以上即为Linux和Solaris系统临时扩展swap空间的常用方法。操作虽然简单,但需注意临时方案不具备持久性,系统重启后将失效。如需永久生效,请务必在相应的配置文件中添加自动加载项,例如Linux的 /etc/fstab 和Solaris的 /etc/vfstab。
