Linuxサーバーのスワップファイルを作成する

:bulb: RAMが4GB以下のサーバーの場合、./discourse-setupを実行すると、2GBのスワップファイルを求められ、自動的に作成されます。

ほとんどのクラウド仮想マシンプロバイダーは、サーバープロビジョニングの一部としてスワップファイルを設定していません。

特に、Discourseのアップグレードは大きなメモリ負荷を発生させます。スワップファイルがあれば、メモリ不足エラーでプロセスがランダムに終了する代わりに、処理速度が低下します。スワップファイルは、ロード関連の他の多くの障害から保護するための安価な保険となります。

これは、サーバー上のコマンドラインからいつでも実行できます。

2GBのスワップファイルを設定する

サーバーのメモリが4GBを超えていない限り、Discourseには2GBのスワップファイルを推奨します。

ドロップレット用に開いたシェルで、次のようにします。

:warning: この操作の多くでroot権限が必要になるため、これらのコマンドを実行する前にrootになるかsudo -sを実行してください!その後、rootから抜けるのを忘れないでください。

  1. 空のスワップファイルを作成します

     install -o root -g root -m 0600 /dev/null /swapfile
    
  2. 'swapfile’という名前の2GBのファイルを割り当てます

     fallocate -l 2G /swapfile
    
  3. これがスワップファイルであることをLinuxに伝えます:

     mkswap /swapfile
    
  4. 有効化します

     swapon /swapfile
    
  5. 再起動後も存在するようにファイルシステムテーブルに追加します:

     echo "/swapfile       swap    swap    auto      0       0" | tee -a /etc/fstab
    
  6. スワップネスを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
「いいね!」 96