web-dev-qa-db-ja.com

Linuxコマンドを使用してメモリ使用量(RAM使用量)を取得する方法

Linuxコマンドを使用して、使用中のメモリ(RAM)をパーセンテージで取得しようとしています。私のcpanelには、特定のWebページに表示する必要があるメモリ使用量が表示されます。

フォーラムから、正しい記憶は以下から見つけられることがわかりました:

free -m

結果:

-/+ buffers/cache:        492       1555

-/ + buffers/cache:正しいメモリ使用量が含まれています。この情報を解析する方法、または使用されているメモリをパーセンテージで取得する別のコマンドがあるかどうかはわかりません。

32
codelogn

これは無料のサンプル出力です:

% free
             total       used       free     shared    buffers     cached
Mem:      24683904   20746840    3937064     254920    1072508   13894892
-/+ buffers/cache:    5779440   18904464
Swap:      4194236        136    4194100

数値の最初の行(Mem:)リスト

  • totalメモリ
  • usedメモリ
  • freeメモリ
  • sharedの使用法
  • buffersの使用法
  • 使用状況ファイルシステムキャッシュ(cached

この行ではusedバッファとキャッシュを含むであり、これは無料で影響します。システムは割り当て要求を満たすために必要に応じてキャッシュをダンプするため、これは「真の」空きメモリではありません。

次の行(-/+ buffers/cache:)は、バッファやキャッシュがないかのように、実際に使用されている空きメモリを示します。

最後の行(Swap)は、スワップメモリ​​の使用方法を示しています。これらのものを物理ディスクに置くのは意味がないので、スワップ用のバッファやキャッシュはありません。

使用済みメモリ(バッファとキャッシュを除く)を出力するには、次のようなコマンドを使用できます。

% free | awk 'FNR == 3 {print $3/($3+$4)*100}'
23.8521

これは3行目を取得し、使用済み/合計* 100を割ります。

そして、無料のメモリのために:

% free | awk 'FNR == 3 {print $4/($3+$4)*100}' 
76.0657
35
casey

freeコマンドの情報を解析する方法について説明します。割合を見つけるには、他の2つの回答で提案されているように使用できます。

これは明確に説明されています ここ 。私は自分のシステムにあるものから説明しようと思います。

free -m
             total       used       free     shared    buffers     cached
Mem:          7869       4402       3466          0        208       3497
-/+ buffers/cache:        696       7173
Swap:         3999        216       3783

ここで、さまざまな数値が実際に何を表しているかを見てみましょう。

Line1

  • 7869メモリ/物理を示しますRAM自分のマシンで使用できます。
  • 4402システムで使用されているメモリ/ RAMを示します。
  • 3466は、合計RAM無料で、新しいプロセスの実行に使用できることを示します。
  • 共有メモリを示します。このカラムは廃止されており、将来のfreeのリリースでは削除される可能性があります。
  • 208は、Linuxのさまざまなアプリケーションによってバッファされた合計RAMを示します。
  • 3497合計を示しますRAM将来のデータキャッシュに使用されます。

行2

-/+ buffers/cache:        696       7173

Line2で取得された値696および7173を計算する方法

合計使用量4402)-合計バッファRAM208)-合計RAM3497)は、システムで実際に使用されているRAMを構成する必要があります。 697これは、2行目の実際に使用されたRAMの出力です。

現在、利用可能な合計7869)-実際に使用された696)は空きメモリを与えるはずです7173この場合、2行目の出力としても取得されます。

10
Ramesh

@szboardstretcherで指摘されている duplicate ですが、(元の質問の)ソリューションからの私の好みは、特にウェブページに解析する必要があるため、以下のものです。

$ free | awk '/Mem/{printf("used: %.2f%"), $3/$2*100} /buffers\/cache/{printf(", buffers: %.2f%"), $4/($3+$4)*100} /Swap/{printf(", swap: %.2f%"), $3/$2*100}'

出力:

used: 82.68%, buffers: 42.81%, swap: 1.27%
6
Simply_Me
free | awk '/Mem/{printf("used: %.2f%"), $3/$2*100} /buffers\/cache/{printf(", buffers: %.2f%"), $4/($3+$4)*100} /Swap/{printf(", swap: %.2f%\n"), $3/$2*100}' 

スワップ番号の後に新しい行を追加します

2
Andy

CentOS 7までの場合

cat /proc/meminfo 

プロセスによるメモリの実際の使用状況を確認します。

1
Cosmo Arun