GNU/Linux >> Linux の 問題 >  >> Linux

vmstat でメモリ使用率を取得するには?

あなたが探しているのは、「free」からの出力です:

$ free
             total       used       free     shared    buffers     cached
Mem:        775556     759456      16100          0      22132     592484
-/+ buffers/cache:     144840     630716
Swap:       500344      21972     478372

ツアーはこちら:

これは、768MB の物理 RAM と 500344KB のスワップ パーティションを備えたボックスです。

759456KB は「使用済み」です (2 列目、1 行目)。この「使用済み」メモリのうち、23132KB はバッファ (5 列目、最上行) であり、592484KB (6 列目、最上行) はキャッシュであり、144840KB (2 列目、2 行目) の物理メモリがアクティブなプロセスによって使用されています。

バッファとキャッシュで使用されるメモリをプロセスに使用できると考えると、630716KB (3 列目、2 行目) の物理メモリが空きます。

私が言ったように、swap パーティションは 500344KB (1 列目、一番下の行) です。スワップ ファイルの 21972KB (2 列目、一番下の行) が使用中で、478372KB (3 列目、一番下の行) が空きのままです。

したがって、% 空きメモリの定義は、バッファとキャッシュをカウントするかどうか、およびスワップをカウントするかどうかによって異なります。

これで、適切と思われるパーセンテージを計算するのに十分なはずです。

top と free の出力は次のとおりです。

$ top -n1 | grep "used," ; free
Mem:    775556k total,   751472k used,    24084k free,    20776k buffers
Swap:   500344k total,    21972k used,   478372k free,   586648k cached

             total       used       free     shared    buffers     cached
Mem:        775556     751344      24212          0      20776     586648
-/+ buffers/cache:     143920     631636
Swap:       500344      21972     478372

top と free がどのように一致しているかがわかります (多少の違いはありますが、これはマルチユーザー マシンであり、top と free のプログラムのメモリ使用量がそこに反映されています)。

vmstate を呼び出すときに「-s」を追加すると、形式が異なるだけでほぼ同じ出力が表示されます。

$ vmstat -s ; free
       775556  total memory
       759920  used memory
       674680  active memory
        18440  inactive memory
        15636  free memory
        21892  buffer memory
       594372  swap cache
       500344  total swap
        21972  used swap
       478372  free swap
       ... output truncated ...

             total       used       free     shared    buffers     cached
Mem:        775556     759920      15636          0      21892     594372
-/+ buffers/cache:     143656     631900
Swap:       500344      21972     478372

vmstat がすべて同じ数値を free として表示していることがわかります。


私はあなたと同じ質問があり、式を考え出します

vmstat -s | awk  ' $0 ~ /total memory/ {total=$1 } $0 ~/free memory/ {free=$1} $0 ~/buffer memory/ {buffer=$1} $0 ~/cache/ {cache=$1} END{print (total-free-buffer-cache)/total*100}'

procps-ng 3.3.10 の vmstat バージョンと procps-ng 3.3.9 の vmstat でテストしました


Linux
  1. sar、ps、および free を使用して Linux でメモリ使用量を計算する方法

  2. inode の使用を解放する方法は?

  3. node.js を使用してシステム統計を取得する方法

  1. CPU使用率を取得する方法

  2. Linuxでユーザーのメモリ使用量を見つける方法

  3. アプリケーションのメモリ使用量を制限するには?

  1. LinuxでVmstatコマンドを使用する方法を例で説明します

  2. ClamAV のメモリ使用量を減らすには?

  3. Linux でメモリ使用量はどのように報告されますか?