Linux主机设置Swap虚拟内存

303人参与 |分类: 运维时间|时间: 2019年06月13日

遇到一个问题,WDCP面板3.x版本MySQL数据库莫名崩溃,使用以下命令无法启动:

service mysqld start

但重启服务器后,再启动MySQL没有问题。在WDCP论坛一位坛友反馈该问题是虚拟内存不足引起的,那么我们接下来看看Linux主机如何设置Swap虚拟内存。

Linux的Swap相当于Windows的虚拟内存,它有啥用呢?

当物理内存不够的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。

那些被释放出来的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时才进行Swap交换。

Linux主机设置Swap虚拟内存-第1张图片

Swap设置多大比较好?

并不是说Swap设置越大越好,具体要看你运行什么程序。一般来说,2G以下物理内存的服务器Swap设置为物理内存的1至2倍即可,2G以上物理内存的服务器Swap设置为同物理内存大小或不设置也可以。

修改Linux服务器虚拟内存Swap大小方法

执行以下命令:

dd if=/dev/zero of=/home/swap bs=1M count=1024

以上命令在home目录创建了一个1G大小的文件,将用于添加虚拟内存。接下来将/home/swap格式化为Swap格式:

mkswap /home/swap

启用Swap:

swapon /home/swap

查看是否生效:

free

需要注意,重启系统后就失效了,如果希望重启系统后仍然有效,请编辑文件fstab:

vi /etc/fstab

加入一行:

/home/swap swap swap defaults 0 0

注意,该文件如果编写不正确可能导致无法开机,编辑完成执行以下命令测试一下:

mount -a

没有任何提示就表示正确了。

最后,还应该设置一下文件权限:

chown root:root /home/swap
chmod 0600 /home/swap

如果后悔了,想要删除掉,请先执行:

swapoff /home/swap

然后删除swap文件:

rm /home/swap