Linux主机设置Swap虚拟内存
WDCP面板3.x版本MySQL数据库莫名崩溃,使用以下命令无法启动:
service mysqld start
但重启服务器后,再启动MySQL没有问题。在WDCP论坛一位坛友反馈该问题是虚拟内存不足引起的,那么我们接下来看看Linux主机如何设置Swap虚拟内存。
Linux的Swap相当于Windows的虚拟内存,它有啥用呢?
当物理内存不够的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。
那些被释放出来的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时才进行Swap交换。
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