swap空间不足问题解决

第一步:使用free -m查看目前swap的交换空间情况,1019M,也可以使用grep SwapTotal  /proc/meminfo查看

[root@localhost swapimage]# free -m
            total      used      free    shared   buffers    cached
Mem:         1010       995        15         0         1       847
-/+ buffers/cache:       145       865
Swap:        1019         0      1019

用df –h查看磁盘空间的使用情况
[root@localhost ~]# df -h
Filesystem           Size Used Avail Use% Mounted on
/dev/sda2            40G 4G 36G 10% /
/dev/sda3             15G 1.7G  13G 13% /home
/dev/sda1             46M  11M  33M 25% /boot
tmpfs                506M    0 506M  0% /dev/shm

第二步:确保系统中有足够的空间用来做swap交换空间,经过df –h查看。

# dd if=/dev/zero of=/tmp/swap2 bs=32k count=819200  -----(32*819200= 26214400(KB),亦等于25600MB)

 

执行上述命令后,会在/tmp目录中创建一个25600MB的swap2文件,再次用df –h查看磁盘空间的使用情况,/home的可以大小已经由1G变成38G了,也就是说通过上面的dd操作,我们已经成功的分配了25G的swap交换空间)

第三步:使用mkswap命令,创建(或设置)交换空间,将文件格式化为swap文件格式
[root@localhost swapimage]# mkswap /tmp/swap2 

第四步:使用swapon命令,启用新增的25G交换空间

[root@localhost swapimage]# swapon /tmp/swap2 
这样修改后SWAP就增加了25G,使用free –m确认新增的swap交换空间已生效

检查swap
  命令代码
  #swapon -s


第五步:修改/etc/fstab文件,使新增的25G交换空间在系统重启后自动生效

[root@localhost swapimage]# vi /etc/fstab
/tmp/swap2   swap  swap  defaults  0 0

 

删除SWAP分区:
1) swapoff /tmp/swap2;
2) 修改/etc/fstab文件

那么swap分区到底设置成多大才最优?

首先看下Redhat官方的文档中关于swap分区大小设置的建议

物理内存 建议的交换空间大小 如果开启休眠功能建议的交换空间大小
⩽ 2GB 内存的2倍 内存的3倍
> 2GB – 8GB 等于内存大小 内存的2倍
> 8GB – 64GB 至少4G 内存的1.5倍
> 64GB 至少4G 不建议使用休眠
因此,一般来说可以按照如下规则设置swap大小:

4G以内的物理内存,SWAP 设置为内存的2倍,不超过4G。

4-8G的物理内存,SWAP 等于内存大小。

8-64G 的物理内存,SWAP 设置为8G。

64-256G物理内存,SWAP 设置为16G。

实际上,系统中交换分区的大小并不取决于物理内存的量,而是取决于系统中内存的负荷,所以在安装系统时要根据具体的业务来设置SWAP的值。

 
 
 
posted @   一川烟草happy  阅读(1079)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
点击右上角即可分享
微信分享提示