Linuxでswap領域が不足した場合の2つの対処法

swap-warning
  • URLをコピーしました!

自宅サーバーCentOS)を構築してしばらく経つのですが、今頃になってZabbixから以下のような警告が通知されるようになりました。

メモリ4GBも積んでいるのに、どうやらswap領域足りない様子。
時間的に夜間のバックアップ時に通知されているようなので、一時的なものだと思われるが放っておくのも気持ち悪い。
そこで、swap領域の警告に対処するための2つの方法をご紹介します。

目次

swap領域とは?

そもそも、swap領域とは何でしょう?
※知っている方は読み飛ばしてください
私的には、メモリが足りなくなった際の補助領域くらいにしか思っていませんでした。
一言でいうと、

使っていないメモリの内容を一時的にしまっておくための場所

引用:スワップファイル (swapファイル)とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

らしいです…。
引用元のサイトに図解で分かりやすく掲載されていますので、ぜひ参考にしてみてください!

1. swap領域の拡張(追加)

swap領域が足りないって言ってるんだから、追加してあげましょう。
しかし、ただ好きなだけ追加したら良いってわけじゃなさそうです。
推奨しているswap領域目安があるらしいので、どのくらい割り当てるか、以下を参考にしてみてください。

確保するswap領域の目安

swap領域は、OSインストール中に自動的に確定されますが、最適なパフォーマンスを出すためには、swapサイズ手動で指定することが推奨されています。

RAM の容量(GB)推奨 Swap 領域(GB)ハイバネートを許可する場合の推奨 Swap 領域(GB)
2GB 以下RAM * 2RAM * 3
2GB から 8GBRAM と同じRAM * 2
8GB から 64GB最低 4GBRAM * 1.5
64GB 以上最低 4GB推奨しない
引用:Red Hat Customer Portal

swap領域を確認する

まずは、以下のコマンドで現在のswap領域がないか確認します。

次に有効になっているswapを確認します。

既にswap領域がありましたね。
どうやら、全く知識がないままCentOS 7をインストールした際に「標準パーティション」として設定したようです…。余談ですが、ファイルシステムLinux標準の「ext4」ではなく、「xfs」のままに設定していた場合、swapパーティションを拡張する際に注意が必要になりますが、今回はswapファイルを作成しますので、ここでは特に説明しません。
※著者はこれでサーバーを破壊してしまいました

swapファイルを作成する

対象のサーバーに割り当てているメモリ4GBですので、上記の目安を参考に、トータル4GBswap領域にします。
今回は、既に1.6GBswapパーティションが存在しますので、2.4GB分のswapファイルを作成していきます。

swapファイル領域を確保

パーミッションの変更

swapファイルを作成

swapファイルを有効化

起動時に自動で有効化

最後にサーバーが起動した際に、作成したswapファイルが自動で有効になるよう、ディスクのマウントと同じ要領でfstabの末尾に追記します。

2. Zabbixの監視を無効にする

もう1つは、通知しないようにswap領域Zabbixの監視対象から外す方法です。
使わないんだったら監視しなくてもいいじゃん!って発想。
Zabbixの管理画面からswapトリガーを無効にします。[設定] > [テンプレート] > [Template OS Linux] > [トリガー]を開きます。
[Lack of free swap space on {HOST.NAME}]のステータスの右側にある[有効]をクリックし、[無効]にします。

swapトリガー無効
出典:Zabbix 3.2をCentOS 7にインストールする – Qiita

これで通知が来なくなりましたね。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメント一覧 (1件)

ESXiの仮想マシン(Centos 7)のパーティションを拡張する方法 | Minory へ返信する コメントをキャンセル

CAPTCHA


目次