对于内存小于或等于 4GB 的服务器,运行
./discourse-setup将提示并自动创建一个 2GB 的交换文件(swapfile)。
大多数云虚拟机提供商在提供服务器时不会设置交换文件。
特别是,升级 Discourse 会产生很大的内存压力。有了交换文件,进程将只是变慢,而不是因为内存不足而被意外终止。拥有一个交换文件是对抗许多其他负载相关故障的廉价保险策略。
这可以随时在您的服务器命令行上完成。
设置 2GB 交换文件
我们建议为 Discourse 设置一个 2GB 的交换文件,除非您的服务器有超过 4GB 的内存。
在您打开到您的液滴(droplet)的 shell 中,执行以下操作:
在此过程中大部分时间您都需要 root 权限,因此在运行这些命令之前,请成为 root 或运行
sudo -s!不要忘记之后退出 root 权限。
-
创建一个空的交换文件
install -o root -g root -m 0600 /dev/null /swapfile -
分配一个名为 ‘swapfile’ 的 2GB 文件
fallocate -l 2G /swapfile -
告诉 Linux 这是交换文件:
mkswap /swapfile -
激活它
swapon /swapfile -
将其添加到文件系统表,以便在重启后仍然存在:
echo "/swapfile swap swap auto 0 0" | tee -a /etc/fstab -
将 swappiness 设置为 10,因此它只用作紧急缓冲区
sysctl -w vm.swappiness=10 echo 'vm.swappiness = 10' > /etc/sysctl.d/30-discourse-swap.conf
整个内容作为一个可复制粘贴的脚本:
install -o root -g root -m 0600 /dev/null /swapfile
fallocate -l 2G /swapfile
mkswap /swapfile
swapon /swapfile
echo "/swapfile swap swap auto 0 0" | tee -a /etc/fstab
sysctl -w vm.swappiness=10
echo 'vm.swappiness = 10' > /etc/sysctl.d/30-discourse-swap.conf