在使用Windows的时候我们都会设置虚拟内存用以缓解内存不够的情况。同样的,在使用Linux服务器时如果内存不够充足,也可以设置虚拟内存,在Linux中叫做交换空间。
先检查一下系统里有没有已有的 Swap文件:
swapon -s
如果有的话则会列出已有的交换空间(包含交换分区和交换文件)。如果返回的信息是空,则表示 Swap 文件不存在。
创建 Swap 文件,并设置权限
使用 fallocate
为 swap 文件预分配空间:
fallocate -l 2G /swapfile
如果 fallocate
分配空间不成功的话,可以用 dd
命令代替:
dd if=/dev/zero of=/swapfile bs=1M count=2048
参数说明:
if=input file
:输入文件名,缺省为标准输入。即指定源文件。of=output file
:输出文件名,缺省为标准输出。即指定目的文件。bs=bytes
:同时设置读入 / 输出的块大小为 bytes 个字节,取为 1024。count=blocks
:拷贝的块数,块大小等于 bs 指定的字节数。将前面算出的数字填入即可。
分配空间后,需要赋予 Swap 文件适当的权限:
chown root:root /swapfile
chmod 0600 /swapfile
初始化并启用
创建好 Swap 文件,还需要格式化后才能使用。
mkswap /swapfile
swapon /swapfile
此时swapfile已经生效了。但重启后还是原样。所以需要设置自动挂载 Swap。
修改 fstab
配置。用 nano或其他文本编辑工具打开/etc/fstab
文件,在其最后添加如下一行:
/swapfile none swap sw 0 0
检查swapfile是否生效
swapon -s
将会列出在用的swapfile和大小,使用情况。
删除 swap文件
如果不需要或者其他什么原因想删除swapfile,只需要修改/etc/fstab
文件,删除/swapfile这一行。卸载已挂载的swapfile,删除即可。
swapoff /swapfile
rm -rf /swapfile
有同学会问了。如果我想调整swapfile文件大小的话呢?
也简单,简单提示下,不写具体命令了:
卸载文件,删除原有swapfile文件(如果是扩大,不删除也可以。缩小则必须要先删除。)
然后从头开始操作即可。注意fstab文件如果以前改过就不要再改了。