首页 » Linux » 增大Linux Swap空间

增大Linux Swap空间

swap分区(交换空间)主要的作用是使用硬盘空间进行程序的数据交换,分担内存。内存不足时会导致出现很多问题

  • 数据库报错:Cannot allocate memory for the buffer pool
  • 程序运行卡顿等

出现相关问题时可以使用 free -m 查看内存使用情况。之前如果出现内存不足的情况解决办法只能是更换或增加内存条,但现在随着硬盘速度的提升(尤其是固态硬盘的普及),可以使用硬盘分摊部分内存压力。

如果需要使用Swap分区,在安装操作系统时一般在硬盘分区时直接分出一个分区作为Swap分区。我在装系统的时候没有概念,所以swap分区比较小,如果更改分区容易造成数据丢失。

Swap空间,通常是一个分区,而也可以通过建立一个文件实现。后者方便空间大小的调整,可以做到无损增加swap空间。

首先使用dd命令参数建立用作交换空间的文件,然后分别使用mkswap命令将刚建立好的文件格式化为swap交换空间文件,最后使用swapon命令激活swap空间。

dd if=/dev/zero of=/swap bs=1M count=512 
mkswap /swap 
swapon /swap

这时再使用free -m命令查看内存,交换空间应该已经生效,但是每次重启都需要重新激活交换空间。将下列行添加到/etc/fstab最后可以实现每次自动激活交换空间。

/swap swap swap default 0 0

错误

最近在同一个服务器上又增加了poste.io邮件服务造成了内存空间紧张,出现了好几次因为空间不足mariadb服务无法启动的状况,于是想扩大swap空间。在使用swapoff关闭现在使用的swap空间时报错

swapoff: /swap: swapoff failed: Cannot allocate memory

因为我只用了一个swap空间,所以无法直接删掉该空间。

解决方法是先从/etc/fstab删除swap空间的自动挂载,重启后就可以直接删除swap空间了。

参考

标签:

发表评论

电子邮件地址不会被公开。 必填项已用*标注