【Ubuntu】swap追加、削除、調整方法
いつも忘れるコマンド集ということで備忘録がてら投稿していきたいと思います。第1弾はswap領域に関するコマンドです。swapに関する基本操作を記載します。
18.04などでも設定可能ですが、一応環境としてはUbuntu 20.04を想定しています。(私の環境ではどちらでも適用できました。)
swapの追加
VPSなどは新規作成するとswap領域が無い場合があります。その状況でWordpressなどを動かすと大体SQLが落ちるのでswapは必須かと思います。
まずは現在のメモリ状況を確認します。下記は例えばメモリ1GBが搭載されているVPSの場合です。
$ free
total used free shared buff/cache available
Mem: 1004896 161384 166932 956 676580 683336
Swap: 0 0 0
swapが0になっていることがわかります。
したがって、新規でswap領域を作成し、有効化した上で再起動後の自動有効化も設定します。
# 今回は1GBのswap領域を作成します。
$ sudo fallocate -l 1G /swapfile
$ sudo chmod 600 /swapfile
# 正常にファイルが作成されているか確認します。
$ sudo ls -lh /swapfile
# 有効化します。
$ sudo mkswap /swapfile
$ sudo swapon /swapfile
# 再起動後にも有効化されるように設定します。
$ sudo vi /etc/fstab
# 下記を追記
/swapfile none swap sw 0 0
以上で追加は終了です。試しに追加直後のメモリ状況を確認してみましょう。
$ free
total used free shared buff/cache available
Mem: 1004896 161768 166468 956 676660 682960
Swap: 1048572 0 1048572
正常に追加されていることが確認できました。なお、この後記載するswapの調整もすることをおすすめします。
swapの削除
頻繁に使うコマンドは次の通りです。swapを切ることは何か理由が無い限りは無いので、正直覚える必要も無いかもしれません。
# /swapfileの使用を停止
$ sudo swapoff /swapfile
# すべてのswap領域の使用を停止
$ sudo swapoff -a
swapの調整
この項目は任意です。正直なところ適用しなくてもそこまで問題はありませんが、サーバのディスクがHDDもしくはSSDでもホストサーバの過負荷などに伴う性能低下による影響を避けるためには設定しておくのも手です。
厳密なところはわかりませんが、簡単に言えばswapの頻度などを調整するようです。RAMとSSDであってもアクセス速度はそれなりに差がありますので、可能な限りRAMを優先して使いたいのは言うまでもありません。
vm.swappinessという値を調整します。デフォルトは60になっていることがほとんどのようで0~100で設定します。サーバー用途だと10前後が一般的なようです。
$ sudo sysctl vm.swappiness=10
これは一時的な値ですので、再起動しても適用されるようにします。
$ sudo vi /etc/sysctl.conf #以下を追記
vm.swappiness=10
これで再起動後も適用されるようになります。
そういえばtopの画面をキャプチャして多少の編集もしたのですが全く使わないまま終わってしまいました。残念なのでアイキャッチ画像にでもしておきましょう。