Vultr の VPS こと Vultr Cloud Compute(VC2) の標準提供イメージでは、swap の設定がされていません。CPU やディスクの性能的には最安の $3.5/month のプランでも十分事足りますが、メモリが 512MB しかないために簡易なサーバ用途でもギリギリになりがちです。
これは実際に運用しているサーバで top した様子です。メモリの free が 10MB 程度しかありません。250MB はキャッシュなので実際には不足しているわけではありませんが、余裕はない状態です。Vultr 公式に swap の設定ガイドがあるので、これを参考に swap の設定を行います。
まずは既に swap が設定されていないかを確認します。"free -m" して swap が 0 であることを確認します。
$ free -mtotal used free shared buff/cache available
Mem: 492 228 8 26 255 224
Swap: 0 0 0
次に swap 先のファイルを準備します。今回はガイド通りの 2GB の領域を確保しました。
$ sudo dd if=/dev/zero of=/swapfile count=2048 bs=1M
2048+0 records in
2048+0 records out
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 6.51387 s, 330 MB/s
作成した /swapfile の権限を、root のみが読み書きできるように変更します。
$ sudo chmod 600 /swapfile
mkswap を実行して /swapfile のセットアップを行います。
$ sudo mkswap /swapfile
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=0e842c1b-20d4-4da0-853d-78b708da7003
swapon で swap を有効化します。
$ sudo swapon /swapfile
特に何も表示されなければ成功です。"free -m" してメモリ使用量を見てみましょう。
$ free -m
total used free shared buff/cache available
Mem: 492 229 7 26 255 223
Swap: 2047 0 2047
すぐには使われないようですが、ちゃんと Swap の total が 0 ではなくなっていますね。
永続化
このままだと再起動するたびに swapon しないといけないので、/etc/fstab に書いて起動時に自動で swap を設定するようにします。次の 1 行を追記してください。
/swapfile none swap sw 0 0