====== 📝Linuxで空きメモリの調べ方 ====== Linuxでメモリの状況を調べる「free」コマンドの使い方と読み方。 ---- ===== freeコマンド ===== ターミナルを起動して「free」と入力するとメモリ状況が表示されます。 {{:media:201805:20180514_114642_linux_free.jpg}} メモリ量が多い場合は「-m」オプションで「MiB(MB)」単位での表示もできます。 {{:media:201805:20180514_114649_linux_free.jpg}} ===== メモリの内訳 ===== freeコマンド読み方を知るには、まずメモリについて理解する必要があるので下記のメモリ構造の概略図をご覧ください。 {{:media:201805:20180514_154651_linux_free.jpg}} メモリは大きく分けると「物理メモリ」と「仮想メモリ」に分けられます。 * 「物理メモリ」・・・CPUと直結している半導体メモリで、高速に動作しますが価格が高くCPUやハードウェアの仕様により搭載容量に制限があります。 * 「仮想メモリ」・・・物理メモリが不足した時に使用される領域です。メモリと言っていますが物理メモリに収まりきらない情報をHDDに書き出したファイルの事でスワップファイルやページファイルなどと言われます。物理メモリと比べ低速です。 物理メモリは5種類に分けられます(バッファとキャッシュは厳密には違いますがfreeコマンドに合わせて同じ物として説明します)。 * 使用中・・・システムが現在使用中の情報が保持されています。主にプログラムの実行ファイルで使用されます。 * 共有メモリ(shared)・・・複数のプログラム間でデータ交換できるメモリです。 * バッファ(buff/cache)・・・低速な転送速度によるユーザビリティー低下を避けるためのメモリ空間です。利用頻度の多いデータを置き高速に読み出したり、ストリーミング動画を再生する時などに通信速度の変動で動画が停止するのを防ぐため一定量データを保持します。 * バッファ使用中・・・現在使用中の情報と使用予定の情報が保持されています。 * バッファ解放可・・・バッファ使用済みなどで再使用の予定の無い情報が保持されています。 * 空き(free)・・・使用されてない、または解放され再使用可能になった領域。 仮想メモリは2種類に分けられます * スワップ使用中(used)・・・物理メモリの空き領域が少なくなると物理メモリ中の優先度の低い情報が移動されます。 * スワップ空き(free)・・・あらかじめスワップ用に確保した領域の中で使用中を除いた容量です。 ===== freeコマンドの読み方 ===== * Mem・・・物理メモリ * total・・・物理メモリの全容量です。used+free+buffと同じです。 * used・・・・使用中のメモリ、sharedも含む * free・・・まったく使用されてないメモリ * shared・・・共有メモリとして使用中のメモリ、usedの一部 * buff/cache・・・バッファやキャッシュとして使用中または使用後のメモリ * available・・・バッファの中で現在使っていないメモリとfreeを合計したメモリ * Swap・・・仮想メモリ * total・・・仮想メモリの全容量です * used・・・使用中の仮想メモリ * free・・・まったく使用されてない仮想メモリ ===== 最後に ===== Linuxを快適に動作されるには日常作業でSwapを使わないようにする事です。Swapはメモリと比べもにならないほど低速なのでPCの動作が非常に重くなります。Freeが多いのが一番良い状態ですが、availableに余裕があればある程度快適に動作します。 メモリ不足への対策で一番手軽なのは余分なアプリは起動しない事とSwapが発生して遅いと感じたら再起動する事です。OSはメモリに余裕がある場合はSwapを使いませんが一時的にでも不足するとOSはメモリ不足と認識して積極的にSwapを使いはじめるので一度再起動してメモリをクリアにすると快適に動作します。それでも頻繁にSwapが発生する場合はメモリを追加するしかありません。 また、積極的にメモリを使う動画編集・3D編集・複雑な計算処理などの場合はどれだけ物理メモリを搭載しても不足するので、予算的・ハードウェア的にメモリ増設の限界に近づいたらSwap先のストレージをより高速なSSDなどに変更すると少しは快適に動作するようになります。