Swap分区在系统的物理内存不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。
今天在折腾腾讯云的时候,phpMyAdmin很容易挂了,其实按道理来说,应该不会这么差的。虽然是学生机,但是另一台香港的几乎没出现这个问题。然后就登上服务器看了下,才发现swap为0。1G的内存,都显示使用了百分之八九十了,那就手动重新配置下Swap吧。
先查看下Swap的大小
free -m
图中的是我分配过得,原先是0的。
创建一个存放Swap文件的文件夹
mkdir /opt/swap
生成一个大小为1G,名字是swapfile的文件
cd /opt/swap && dd if=/dev/zero of=swapfile bs=1024 count=1000000
文件转换成swap并且激活
mkswap swapfile && swapon /opt/swap/swapfile
设置开机自动挂载 vim /etc/fstab 添加
/opt/swap/swapfile swap swap defaults 0 0
添加完你就可以free -m 查看下了。腾讯云分配完之后,数据库没挂过了。mysql 是5.6的,带起来有点吃力。
关于Swap分配多少的问题
一般来说可以按照如下规则设置swap大小:
4G以内的物理内存,SWAP 设置为内存的2倍。
4-8G的物理内存,SWAP 等于内存大小。
8-64G 的物理内存,SWAP 设置为8G。
64-256G物理内存,SWAP 设置为16G。
我的128M小鸡,我给他分配的是500M,基本上看自己的vps配置来,性能好点,你就多分点。