freeの概要
`free`コマンドは、オペレーティングシステムが現在どのようにメモリを管理しているかについてのスナップショットを提供します。これにより、システムがメモリ不足によってパフォーマンス低下に陥っているか、または十分な空きメモリを持っているかを判断するのに役立ちます。
メモリタイプの理解
`free`コマンドの出力を正しく解釈するには、物理メモリ(RAM)とスワップメモリ、およびバッファ/キャッシュの概念を理解することが重要です。
主要なメモリ項目
- Mem (物理メモリ): システムにインストールされているRAMの合計量です。オペレーティングシステムと実行中のプログラムが使用する実際のメモリ空間です。
- Swap (スワップメモリ): 物理メモリが不足したときに使用されるハードディスクの領域です。RAMのように使用されますが、速度ははるかに遅いです。
- total: 合計メモリまたはスワップスペースです。
- used: 現在使用中のメモリまたはスワップスペースです。
- free: 利用可能なメモリまたはスワップスペースです。
- shared: 複数のプロセスで共有されるメモリです。
- buff/cache: カーネルバッファとページキャッシュとして使用されるメモリです。これは実際の「無駄な」メモリではなく、必要に応じていつでもアプリケーションに割り当てられる「空き」メモリに近いものです。
- available: 新しいアプリケーションが追加要求された際に割り当てられるメモリ量です。`free`フィールドよりも正確な「利用可能な」メモリ量を示します。(Linuxカーネル3.14以降で提供)
主要なfreeコマンドオプション
`free`コマンドは、さまざまなオプションを通じて出力単位を変更したり、特定の情報をフィルタリングして表示したりできます。
1. 出力単位オプション
2. その他の便利なオプション
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`free` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
使用例
`free`コマンドのさまざまな活用例を通じて、システムメモリの使用状況を効果的に監視・分析してみましょう。
メモリ情報を人間が読みやすい形式で出力
free -h
最もよく使われるオプションで、メモリ情報をMBまたはGB単位に自動変換して見やすく出力します。
メモリ情報をメガバイト単位で出力
free -m
明確にメガバイト(MB)単位でメモリ使用量を確認したい場合に使用します。
5秒間隔で3回メモリ情報を更新
free -h -s 5 -c 3
システムのメモリ変化を短時間で観察する際に便利です。(例:特定のプログラムを実行しながらメモリ使用量の変化を観察)
バッファとキャッシュを分離して出力(MB単位)
free -m -w
バッファとキャッシュメモリを独立した列として見たい場合に使用します。`-w`オプションは主にデバッグや詳細分析時に使用されます。
Unixタイムスタンプとともにメモリ使用量を記録(スクリプト例)
echo "$(date +%s),$(free -m | grep Mem | awk '{print $2,$3,$4,$6,$7}')" >> mem_log.csv
シェルスクリプトで定期的にメモリ使用量を記録して時系列データを作成する際に活用できます。