web-dev-qa-db-ja.com

free -mを使用してすべてのユーザーのメモリ使用量を取得する方法

Freeコマンドを入力して、次のようにメモリ使用量を取得しました。

free -m 

出力:

enter image description here

私はこのコマンドを使用して同じ情報を取得したいと思いますが、たとえばすべてのユーザーに対して:

enter image description here

私はこのコマンドを使用しました..その出力をbash scripの変数に保存するのが簡単だからです...

4
Akari

freeはすでにシステム全体のメモリ使用量に基づいています。

ユーザーごとに何かが必要な場合は、次のようなものを試すことができます。

ps aux | awk 'NR>2{arr[$1]+=$6}END{for(i in arr) print i,arr[i]}'

awkの機能の簡単な説明として:

  • 最初の行を取り除きます
  • 各行を反復処理し、指定されたすべてのユーザー名の配列を作成します。それらのそれぞれについて、ps aux(常駐セットサイズ)から6番目の列を追加し、それらを合計します。
  • その後、配列キーを反復処理してコンテンツを印刷します。
5
Oli

1つのオプションは、 smemInstall smemfreeはこの機能を提供しないためです。

$ Sudo smem -u -k -t
User     Count     Swap      USS      PSS      RSS 
daemon       1        0   196.0K   197.0K   360.0K 
rtkit        1        0   304.0K   317.0K     1.4M 
[...]
root        44        0   164.3M   197.7M   284.4M 
gert        88        0     1.7G     1.8G     3.2G 
---------------------------------------------------
           159        0     1.9G     2.1G     3.6G

USSとPSSの意味についての説明は、smemのマンページからの抜粋です。

            [...] Unshared memory is reported as the USS (Unique Set
   Size).  Shared memory is divided evenly among the processes shar‐
   ing that memory.  The unshared memory (USS) plus a process's pro‐
   portion of shared memory is reported as the PSS (Proportional Set
   Size).  The USS and PSS only include physical memory usage.  They
   do not include memory that has been swapped out to disk.

IsuspectRSSは、他のユーティリティでRESとも呼ばれる住宅のメモリ使用量です。メモリ使用量の表現の詳細については、Superuser.comの次のQ&Aを参照してください。 メモリ管理について知っておくべきこと

5
gertvdijk