LoginSignup
1
1

More than 1 year has passed since last update.

swap領域の使用量が増える理由

Last updated at Posted at 2022-05-28

先日、あるLinuxサーバでメモリには空きがあるのにswap領域の使用量が徐々に増加して
いることに気づきました。
原因を調べるため、swapについて改めて勉強したのでその内容をここに残しておきます。

swap領域とは

そもそもswap領域とは何のために存在しているのか?
それはメモリ不足を防いだり、メモリを有効に使うためです。

仮想サーバの仮想メモリは実際の物理メモリ以上の容量をアプリに提供出来ます。
そうなれば当然、物理メモリ以上にメモリを使用する場合が出てきても不思議では
ありません。
そのような場合でもメモリ不足が起こらないように、メモリの内容をディスクに
移してメモリに空きを作る、この時ディスク上に作られる領域がswap領域です。

OSは仮想メモリが不足しそうになると、使用頻度の低いデータをディスクに書き出して
再び必要になれば読み込みます。
swap領域によりメモリ不足エラーを解消出来ますが、再度メモリに読み込む時は
当然ディスクからの読み込みなので処理に時間がかかってしまいます。

仮想メモリの仕様はOS毎に異なります。
swap領域を予約※せずにメモリを割り当てる仕様のものもありますが、swap領域が
確保出来ない場合もあります。
(※OSが予めswap領域に対して空きスペースを予約しておくこと)
実際に割り当てを行う場合は、しっかり確認の上で行ってください。

メモリに空きがあるのにswap領域の使用量が増えている?

swap領域がメモリが不足しないための避難場所みたいな場所ということは分かりました。
では、メモリに空きがあるにも関わらずswap領域を使うのはなぜなのでしょう?

結論は、使われていない使用頻度の低いデータをswap領域に移動させるからです。

swap領域の説明でメモリ不足を防ぐことメモリを有効に使うことの2つを記載しました。
今回は後者であるメモリの有効活用のための動きだったのです。

メモリを有効に使うとは何なのか。
頻繁に使うデータをメモリ上に乗せて処理を高速化させること、つまりキャッシュです。
メモリに空きがあるからといって、いつまでも使われないデータをメモリに乗せているのは
容量の無駄遣いにしかなりません。
それならばswap領域に移してしまい、キャッシュとして使う領域をより大きく確保した方が
処理を高速化できるという訳です。

まとめ

swap領域は退避先です。
ですが、メモリ不足の時以外にも使われていることを覚えておきましょう。

※記載に誤りがある場合はご指摘をお願いします。

[参考]http://www.math.kobe-u.ac.jp/HOME/kodama/tips-free-memory.html

Linuxのswapパラメータについては下記が分かりやすかったです。
[参考]https://qiita.com/ikuwow/items/f0b4d1f509a0b83b5d7e

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1