date:
updated:

如何在Debian上创建交换空间(swap)


在腾讯云上买了给1c1g的服务器,内存实在是不够用,想办法整大点……

通过文件建立交换文件

网上教程大多推荐使用fallocate,但是这条命令只能在文件系统为XFS、ext4、SMB3、Btrfs下使用,在其他文件系统下会报错:

1
2
fallocate -l 4G /swapfile
fallocate: fallocate failed: Operation not supported

由于我的文件系统是ex3所以还是用dd吧。在根目录下新建一个4GB的文件:

1
dd if=/dev/zero of=/swapfile bs=1M count=4096

改变文件权限,只有root才能读写:

1
chmod 0600 /swapfile

激活交换文件

1
swapon /swapfile

设置开机自动挂载。编辑文件vim /etc/fstab,在文件中添加一行:

1
/swapfile swap swap defaults 0 0

可以用swaponfree查看一下交换空间是否在使用了(如果没有在使用就重启试试~):

1
2
3
4
5
6
7
8
swapon --show
NAME TYPE SIZE USED PRIO
/swapfile file 8G 0B -1

free -h
total used free shared buff/cache available
Mem: 868M 157M 496M 10M 214M 570M
Swap: 8.0G 0B 8.0G

调整Swappiness值

Swappiness是一个linux内核属性,用于定义系统使用交换空间的频率。这个值在0~100之间,数值越低,linux就越尽可能避免使用交换空间。

你可以输入cat /proc/sys/vm/swappiness来查看swappiness值,默认是60。
如果你想尽量少用交换空间,可以编辑/etc/sysctl.conf

1
vm.swappiness=10

你可以多改改这个数值来找到最佳值

删除交换文件

先停止使用交换空间

1
swapoff -v /swapfile

然后删除自动挂载。/etc/fstab内的删除/swapfile swap swap defaults 0 0这一行。

最后删除文件

1
rm /swapfile

← Prev 使用pacman包管理器 | 如何解决VMwareWorkstation与Device/CredentialGuard不兼容 Next →
打赏
支付宝 | Alipay
微信 | WeChat