1. HOME
  2. PC
  3. Linux
  4. Linux の残メモリ容量とスワップ(free と vmstat)
2016年07月20日
画像ファイル(JPEG、PNG、BMP、GIF、PNM、TIF ...
2014年04月17日
SSH の文字化け対策
2015年06月04日
エックスサーバーに Git をインストールしてみた
2015年05月29日
テキストオブジェクトで vim 幼稚園を卒園した話
2014年08月04日
SSH 接続してエックスサーバーのディスク使用量を確認する ...
2014年08月08日
Chrome で WEB レスポンスヘッダ と リクエストヘッ ...

Linux の残メモリ容量とスワップ(free と vmstat)

Linux でメモリ関連の情報を確認する場合は free コマンドを使うと思いますが free コマンドが出力する値をそのまま見るだけでは正しく把握できませんよ、という話。

Linux のメモリ残容量を把握する

free コマンドの free の値だけを見ているといわゆる残メモリ容量を把握することはできません。


この場合、free が 55M となっているので 55MB しか残りがない!ヤベー!!と思うのは間違い。

Linux は各プロセスにメモリを割り振った残り(free の値)をどんどんバッファ(buffer)とキャッシュ(cache)に利用して、ディスク入出力の負荷を減らすようにしているから free(free の値)は 数十メガ程度の瞬間的な使いまわしに対処する程度しか残っていない事が多いです。

結果 Linux では free の値が減少して buff/cache の値が増加していく。

なので、いわゆる「残メモリ容量」を把握するためには free コマンドで表示される「free」の値と「buff/cache」の値を合計した数値が、いわゆる「残メモリ容量」となります。

上記の場合で言えば free 55MB + buff/cache 231 MB = 286 MB がいわゆる残メモリ容量。


スワップの見方

スワップの見方も注意が必要。

上記の場合、スワップ領域として 1.0GB が確保(total)されており、そのうち 297MB が used(使用中)となっています。ただ、used がゼロ以上(スワップが発生している)だからといって、直ちに問題というわけではありません。

スワップがゼロでなくとも、実際にどれだけスワップを使っているか(読み書きしているか)を合わせて確認する必要があります。

メモリからスワップへの書き込み(スワップアウト)とスワップからメモリへの読み込み(スワップイン)を確認するためには vmstat コマンドを使います。

以下のコマンドでスワップイン/アウトが確認できます。なお引数に 5 をしているので 5秒間隔で vmstat の出力が更新されます。


$ vmstat 5

vmstat の出力はこんな感じ。

「—swap–」の列がスワップの情報で si がスワップイン so がスワップアウト(ちょっとずれちゃってますが)。free コマンドでスワップの used がゼロでなくても si と so がほぼゼロ(実際の書き込み/読み出しがほぼゼロ)であれば、特に問題なし。

また、多少の si は問題なし。 so が頻繁に発生していると NG と判断する。

上記の場合は、若干のスワップアウト(so)が発生しているので so が常態化するようであれば、何らかのメモリ対策を講じないとパフォーマンスに悪影響が出ている可能性があるということです。


vmstat の間隔は?

上記では 5 秒間隔(vmstat 5)ですが、実際には 30 秒間隔(vmstat 30)でより長期的な変化を見ることが良いそうな。


まとめ

大量にメモリ積んじゃえばメモリ残なんて気にしなくても良いのに。。と思いつつも、そんなにお金がない私は free と vmstat が永遠の友達です。はい。

でわでわ。








この記事にコメントする





Copyright © 2012 - 2014 MacBook Air とWordPressでこうなった All rights reserved
Powered by WordPress.