swapfileの追加

「さくらのVPS」の標準OSで swapfile を利用する方法について記載しています。 記載内容は、標準OSの仕様変更により、変更される事がございますので、参考情報としてご活用ください。

対象の標準OS

「さくらのVPS」の標準OSのうち、次の標準OSが対象となります。 カスタムOSや、記載の無い標準OSでは異なりますのでご注意ください。

swapfileの追加

論理ボリュームマネージャを用いない場合、お客様によるスワップ容量の変更が容易で無い為、一部、スワップパーティションを含まないイメージの提供を行っております。 お客様にて、必要に応じた容量のswapfileを設定ください。

注意

スワップによりストレージIOが増加する為、 リソース制限 に記載のIOPS制限にご注意ください。IOPS制限により性能が大幅に低下する場合、スワップを用いるのでは無く スケールアップ によるメモリ増量をご検討ください。

スワップが存在しない事を確認

次のコマンドを用いて、swaponコマンドの出力が無い事、freeコマンドで Swap total が 0 で有る事を確認し、システムにスワップが存在しない事を確認してください。

$ sudo swapon --show
$ free
               total        used        free      shared  buff/cache   available
Mem:         4009552      116404     3773976        8640      119172     3709308
Swap:              0           0           0

スワップファイルを作成

次のコマンドを用いて /swapfile を作成します。 作成する /swapfile に対し十分な空き容量(Avail)が存在する必要が有る為、事前に空き容量を確認します。

$ df -h /
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda2        25G  1.1G   23G   5% /

ddコマンドのcountには、作成したいスワップの容量をMBで指定します。 次の例では、2GBのスワップが作成されます。

/swapfile を一般ユーザーが読めないように、パーミッションを適切に設定する必要が有ります。

$ sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
$ sudo chmod 600 /swapfile
$ sudo mkswap /swapfile

スワップファイルの有効化

作成した /swapfile を指定し swapon コマンドを実行する事で、スワップが有効となります。

$ sudo swapon /swapfile
$ free
             total        used        free      shared  buff/cache   available
Mem:         4009552       88136     1639660        8640     2281756     3670732
Swap:        2097148           0     2097148

有効化できる事が確認できたら、 /etc/fstab に /swapfile のエントリを記載する事で、再起動後も /swapfile が有効となります。 /etc/fstab の編集前にはバックアップを取得する事をお勧めします。

$ sudo cp -p /etc/fstab /etc/fstab.org
$ echo "/swapfile none swap sw 0 0" | sudo tee -a /etc/fstab
/swapfile none swap sw 0 0
$ tail -1 /etc/fstab
/swapfile none swap sw 0 0

/etc/fstab の編集後は、再起動を行い、正常に起動しスワップが有効となっている事をご確認ください。