Linuxコマンドを使用して、使用中のメモリ(RAM)をパーセンテージで取得しようとしています。私のcpanelには、特定のWebページに表示する必要があるメモリ使用量が表示されます。
フォーラムから、正しい記憶は以下から見つけられることがわかりました:
free -m
結果:
-/+ buffers/cache: 492 1555
-/ + buffers/cache:正しいメモリ使用量が含まれています。この情報を解析する方法、または使用されているメモリをパーセンテージで取得する別のコマンドがあるかどうかはわかりません。
これは無料のサンプル出力です:
% 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
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
行2
-/+ buffers/cache: 696 7173
Line2で取得された値696および7173を計算する方法
合計使用量(4402)-合計バッファRAM(208)-合計RAM(3497)は、システムで実際に使用されているRAMを構成する必要があります。 697これは、2行目の実際に使用されたRAMの出力です。
現在、利用可能な合計(7869)-実際に使用された(696)は空きメモリを与えるはずです7173この場合、2行目の出力としても取得されます。
@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%
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}'
スワップ番号の後に新しい行を追加します
CentOS 7までの場合
cat /proc/meminfo
プロセスによるメモリの実際の使用状況を確認します。