利用可能なメモリをパーセンテージで表示するコマンド

利用可能なメモリをパーセンテージで表示するコマンド

利用可能なメモリをパーセントで表示したいです。私は利用可能なメモリではなく、使用されたメモリを表示していると確信しています。それとも私が間違っていますか?

mem=`free -m | awk 'NR ==2{printf $3,$2,$3*100/$2}'`
echo $mem

答え1

使用可能なメモリ量をパーセンテージで表示するには、列4(使用可能)を列2(合計)で割り、その結果に100を掛けます。

たとえば、

[user@localhost ~]$ free | awk '/^Mem/ { printf("free: %.2f %\n", $4/$2 * 100.0) }'
free: 97.32 %

使用された金額を表示するには、3列(使用済み)を2列(全体)に分割し、その結果に100を掛けます。

[user@localhost ~]$ free | awk '/^Mem/ { printf("Used: %.2f %\n", $3/$2 * 100.0) }'
Used: 2.75 %

%g を使用して、指定された有効桁数に丸めることができます。

たとえば、浮動小数点値ではなく整数のみが必要な場合は、指定された浮動小数点桁を0(ゼロ)に変更できます。最初の例では、%.2fは2つの浮動小数点値を表します。

以下は浮動小数点値 0 の例です。

[user@localhost ~]$ free | awk '/^Mem/ { printf("Used: %.0f %\n", $3/$2 * 100.0) }'
Used: 3 %

ここにも答えがあります。

https://stackoverflow.com/questions/10585978/linux-command-for-percentage-of-memory-that-is-free

答え2

この試み、

free | awk '/^Mem/ { a=(($3-$7)/$2 * 100); print a"% of Memory used"  }'
3.43143% of Memory used

free | awk '/^Mem/ { a=(($4+$7)/$2 * 100); print a"% of Memory free"  }'
96.5662% of Memory free

free | awk '/^Mem/ { a=(($7)/$2 * 100); print a"% of Memory cached"  }'
80.4204% of Memory cached

注:値をクロスチェックしてください。glances

関連情報