增加swap虚拟内存

linux admin 3年前 (2022-01-19) 2879次浏览 0个评论

介绍

小白有个小内存吃灰鸡,跑了点东西,内存居然溢出,遇到内存不足导致进程被杀掉。服务器的内存只有1个G,明显不满足日常需求,要么花钱加内存,要么,就采用虚拟内存的办法,将硬盘空间划过来一部分当内存。

以前安装Linux的时候,就遇到分配交换空间的问题,其实这个交换空间就是所谓的虚拟内存。虚拟内存是硬盘中划出来的一段虚拟内存空间,用于扩展操作系统的物理内存。当系统的物理内存不够用的时候,操作系统把内存中最不常用的数据“交换”到虚拟内存,从而将物理内存中的一部分空间释放出来供其他程序使用。当程序需要用到虚拟内存内的数据的时候,操作系统再将数据从交换分区恢复到物理内存中。

Linux操作系统有两种实现虚拟内存的方法:交换分区(swap分区)交换文件(swap文件)

采用交换分区的办法其实就是新建一个分区,然后将该分区挂载作为交换空间,方法步骤与传统的新建分区一样。只不过格式化分区和挂载分区分别采用mkswapswapon命令。在创建分区之前,我们常常要用过fdisk -ldf -Th命令来查看硬盘信息和挂载信息,来确定分区的大小。

这里就给大家简单介绍一下采用交换文件的方法吧。

实操

登录SSH后,输入以下命令进行查看Swap分区大小:

#查看Swap分区大小
free -h

这时可能会有两种情况:

  1. 已经设置过swap
  2. 没有设置swap

如果要增加Swap交换分区,就要先删除目前的Swap分区,删除后我们再增加Swap交换分区。(不删除目前的Swap交换分区是不能增加新的Swap交换分区)。

删除Swap交换分区

输入以下命令删除Swap交换分区

#删除Swap交换分区
swapoff -a

命令输入后“回车”,“回车”后在SSH上面是没反应的,但是已经删除了Swap交换分区,如果不确定有没有删除Swap交换分区,我们可以再次查看Swap分区大小。输入命令:

查看Swap分区大小
free -h

然后我们再次查看Swap分区大小已经变为了0M,说明已经删除了Swap交换分区。

新增SWAP交换分区

创建swap分区的文件,输入以下命令:

#创建swap分区的文件
dd if=/dev/zero of=/mnt/swapfile bs=1M count=2048

以上命令中:if表示input_file输入文件,of表示output_file输出文件,bs表示block_size块大小,count表示计数。这里,我采用了数据块大小为1M,数据块数目为2048,这样分配的空间就是2G大小。

SWAP交换分区大小大家可以自行修改。

然后,格式化交换文件:

mkswap /mnt/swapfile

之后,挂载交换文件:

swapon /mnt/swapfile

这样,可以看到添加了2G虚拟内存之后的内存大小

为了保证开机自动加载虚拟内存,还需要在/etc/fstab文件中加入如下命令:

nano /etc/fstab
/mnt/swapfile swap swap defaults 0 0

这样,就可以顺利执行一些比较消耗内存的操作了。

一键脚本

wget -O swap.sh https://down.vpsxb.net/swap.sh && bash swap.sh

 


VPS小白 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:增加swap虚拟内存
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址