Linuxサーバーを運用していると、
- swap使用量が増えた
- freeコマンドでswapが減っている
といった状況に遭遇することがあります。
このとき、 「swapが使われた=即障害」 と判断していませんか?
本記事では、 スワップが使われ始めた時にどう判断すべきかを、 Linuxの動作原理を踏まえて解説します。
目次
結論:swap使用=即異常ではない
Linuxでは、
- メモリを効率的に使うため
- キャッシュを優先するため
意図的にswapを使うケースがあります。
重要なのは、 「使われているか」ではなく「使われ続けているか」 です。
まず確認すべきコマンド
free -m
free -m
見るべきポイント
- available メモリが残っているか
- swapが増え続けていないか
vmstat
vmstat 1
重要項目
- si(swap in)
- so(swap out)
ここが継続的に0でない場合、 実害が出始めています。
判断基準① swap使用量が増えたが si/so は0
状態
- swapは一部使われている
- si / so は発生していない
判断
問題なし(監視継続)
一時的に退避されただけで、 性能影響はほぼありません。
判断基準② si/so が断続的に発生
状態
- si / so が時々発生
- レスポンスがやや不安定
判断
注意状態
ピーク時のみメモリ不足が発生しています。
判断基準③ si/so が継続的に発生
状態
- si / so が止まらない
- CPU idle が高い
- レスポンスが悪い
判断
明確な異常状態
ディスクI/O待ちにより、 処理が大きく遅延します。
なぜswapが遅く感じるのか
swapは
- メモリ → ディスク
- ディスク → メモリ
の移動が発生するため、 CPUを使わず待ち時間が増えるのが特徴です。
CPU idleが高く見える理由
swap in/out が発生すると、
- プロセスはI/O待ち
- CPUは仕事ができない
結果として idleが高く見える状態になります。
やってはいけない判断
- swapを即無効化
- 原因調査なしの再起動
これらは 問題を隠すだけになることがあります。
どうなれば「解決」と判断できるか
- si / so が0に戻る
- レスポンスが安定
- swap使用量が増え続けない
この状態になれば、 swapによる性能問題は解消しています。
次に取るべき対策
- メモリ増設・VMサイズ変更
- メモリリーク調査
- 不要プロセスの整理
まとめ
スワップは 使われたかどうかではなく、使われ方 で判断します。
si / so を基準に冷静に切り分けることで、 不要な対応を防ぐことができます。
あわせて読みたい


MTU不一致で起きるパケットロスの見抜き方(Linux編)
通信はできている。 しかし、特定の通信だけ失敗する、レスポンスが極端に遅い。 このような症状の原因として非常に多いのが MTU(Maximum Transmission Unit)の不一致…
あわせて読みたい


CPU idleが高いのに遅い原因
サーバーが遅いと感じて確認すると、 CPU idle が高い CPU使用率も低い それでもレスポンスが悪い この状態は、 Linux運用で最も混乱しやすいパターンの一つです。 本記…
あわせて読みたい


LinuxでCPU使用率が高止まりする原因と調査手順
CPU使用率が高止まりしている状態とは CPU使用率の高止まりとは、一時的なスパイクではなく、以下のような状態が継続している状況を指します。 CPU使用率が常時80〜100%…
