Linux の free コマンド:システムメモリの監視

LinuxLinuxBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

Linuxのfreeコマンドに関する実験へようこそ。この実験では、freeコマンドを使ってシステムのメモリ使用状況を監視し分析する方法を学びます。このスキルは、システムのパフォーマンスを最適化し、メモリ関連の問題をトラブルシューティングする必要があるシステム管理者や開発者にとって重要です。

忙しいWebサーバーのメモリ使用状況を監視する任務を与えられた初任のシステム管理者を想像してみてください。freeコマンドはこのタスクの主なツールになります。これにより、システムパフォーマンスに影響を与える前に、現在のメモリ状況を迅速に評価し、潜在的な問題を特定することができます。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/SystemInformationandMonitoringGroup -.-> linux/free("Memory Reporting") subgraph Lab Skills linux/free -.-> lab-388496{{"Linux の free コマンド:システムメモリの監視"}} end

freeコマンドの基本的な使い方

まずは、最もシンプルな形式でfreeコマンドを使ってみましょう。これにより、システムのメモリ使用状況の概要が得られます。

まず、既に開いていない場合はターミナルを開きます。そして、次のコマンドを実行します。

free

次のような出力が表示されるはずです。

              total        used        free      shared  buff/cache   available
Mem:        8167004     2524956     3300280      658636     2341768     4657560
Swap:       2097152           0     2097152

この出力は、システムのメモリ使用状況のスナップショットを提供します。各列の意味を解説しましょう。

  • total:物理的なRAMとスワップ領域の合計量
  • used:現在使用中のRAMの量
  • free:まったく使用されていないRAMの量
  • shared:tmpfsによって使用されるRAMの量
  • buff/cache:バッファとキャッシュに使用されるRAMの量
  • available:新しいアプリケーションを起動するために利用可能なメモリ量の推定値

出力は2行に分かれています。

  • Mem:物理的なRAMに関する情報を表示します。
  • Swap:スワップ領域(仮想メモリ)に関する情報を表示します。

既定ではすべての値がバイト単位で表示されます。

読みやすい形式でメモリ情報を表示する

freeの既定の出力は正確ですが、すぐに読み取るのが難しい場合があります。より読みやすい形式で情報を表示するには、-hオプションを使いましょう。

次のコマンドを実行します。

free -h

次のような出力が表示されるはずです。

              total        used        free      shared  buff/cache   available
Mem:          7.8Gi       2.4Gi       3.1Gi       642Mi       2.2Gi       4.4Gi
Swap:         2.0Gi          0B       2.0Gi

-hオプション(「human-readable」の略)は、数値を自動的にスケーリングし、適切な単位接尾辞(ギガバイト用のG、メガバイト用のMなど)を追加します。これにより、システムのメモリ使用状況を一目ですぐに理解するのがはるかに容易になります。

値が現在、Gi(ギビバイト)やMi(メビバイト)のような単位で表示されていることに注目してください。これらは2進数単位で、1 Gi = 1024 Miで、コンピュータがメモリを測定する標準的な方法です。

メガバイト単位でメモリ情報を表示する

時には、特定の単位でメモリ情報を見たい場合があります。メガバイト単位で情報を表示するには、-mオプションを使いましょう。

次のコマンドを実行します。

free -m

出力は次のようになるはずです。

              total        used        free      shared  buff/cache   available
Mem:           7975        2466        3222         642        2286        4548
Swap:          2047           0        2047

-mオプションは、freeにすべての値をメガバイト単位で表示させるように強制します。-hオプションよりも精度が必要な場合でも、読みやすい数値が欲しい場合に便利です。

これらはメビバイト(MiB)で、1 MiB = 1,048,576 バイトであり、1 MB = 1,000,000 バイトのメガバイト(MB)ではありません。実際には、その違いは小さく、しばしば交換可能に使用されます。

freeコマンドによる継続的な監視

実際のシナリオでは、時間の経過とともにメモリ使用状況を監視する必要があることがよくあります。freeコマンドを使えば、-s(秒)オプションを使ってこれを行うことができます。このオプションは、一定の間隔で表示を更新します。

合計5回の更新まで、3秒ごとにメモリ使用状況を監視してみましょう。

free -h -s 3 -c 5

このコマンドはいくつかのオプションを使用しています。

  • -h:読みやすい形式で表示
  • -s 3:3秒ごとに更新
  • -c 5:5回の更新後に停止

3秒ごとに更新される出力が表示されるはずで、以下のようになります。

              total        used        free      shared  buff/cache   available
Mem:          7.8Gi       2.4Gi       3.1Gi       642Mi       2.2Gi       4.4Gi
Swap:         2.0Gi          0B       2.0Gi

              total        used        free      shared  buff/cache   available
Mem:          7.8Gi       2.4Gi       3.1Gi       642Mi       2.2Gi       4.4Gi
Swap:         2.0Gi          0B       2.0Gi

...

この継続的な監視により、メモリ使用状況が時間の経過とともにどのように変化するかを観察することができます。これは、メモリリークを特定したり、特定のアプリケーションのメモリ使用パターンを理解する際に特に役立ちます。

5回の更新が完了する前にコマンドを停止したい場合は、Ctrl+Cを押してください。

合計メモリ使用量の表示

既定では、freeコマンドはバッファとキャッシュを分けてメモリ使用状況を表示します。ただし、時にはバッファとキャッシュを含めた合計メモリ使用量を見たい場合があります。このために、-tオプションを使うことができます。

次のコマンドを実行します。

free -h -t

出力は次のようになるはずです。

              total        used        free      shared  buff/cache   available
Mem:          7.8Gi       2.4Gi       3.1Gi       642Mi       2.2Gi       4.4Gi
Swap:         2.0Gi          0B       2.0Gi
Total:        9.8Gi       2.4Gi       5.1Gi

-tオプションは、下部に「Total」行を追加して、メモリとスワップの使用量を合計します。これにより、物理的なRAMとスワップ領域の両方を含むシステム全体のメモリの概要をすばやく把握することができます。

この出力では:

  • 「Mem:」行は物理的なRAMの使用状況を示します。
  • 「Swap:」行はスワップ領域の使用状況を示します。
  • 「Total:」行は物理的なRAMとスワップ領域の合計を示します。

この全体的なビューは、システムの全体的なメモリ容量と使用状況を一目で理解したい場合に特に役立ちます。

まとめ

おめでとうございます!freeコマンドを使ってシステムメモリを監視するこの実験を完了しました。学んだことを振り返りましょう。

  1. メモリ情報を表示するためのfreeコマンドの基本的な使い方
  2. 読みやすい形式でメモリを表示するための-hオプションの使用
  3. メガバイト単位でメモリ情報を表示するための-mオプションの使用
  4. -sおよび-cオプションを使ったメモリ使用状況の継続的な監視
  5. -tオプションを使ってスワップを含む合計メモリ使用量を表示する

これらのスキルは、システムリソースの監視と管理にとって非常に貴重なものになります。特に、パフォーマンスを最適化する必要がある場合や、メモリ関連の問題をトラブルシューティングする場合に役立ちます。

この実験では扱わなかったfreeコマンドの追加オプションをいくつか紹介します。

  • -b:バイト単位でメモリ量を表示する
  • -k:キロバイト単位でメモリ量を表示する
  • -g:ギガバイト単位でメモリ量を表示する
  • -w:広い出力形式を使用する
  • -s:[SEC]秒ごとに表示を更新する
  • --si:1024ではなく1000の累乗を使用する

メモリ管理が適切に行われることは、システムのパフォーマンスと安定性を維持するために不可欠です。freeコマンドを定期的に使用することで、システムパフォーマンスに影響を与える前にメモリ関連の問題を検出し、防止することができます。