22

Linux では、「top」コマンドを使用すると、メモリ使用量の詳細かつ高レベルの概要が表示され、次のように表示されます。

合計メモリ、使用済みメモリ、空きメモリ、バッファ使用量、キャッシュ使用量、スワップ サイズ、およびスワップ使用量。

私の質問は、これらのメモリ使用量の数値を明確かつ簡単な方法で表示するために使用できるコマンドは何ですか? Solarisの「コア」インストールに存在する場合のボーナスポイント。「sar」は数えません:)

4

5 に答える 5

19

ここに基本があります。ただし、これらのいずれかが「明確で単純」と見なされるかどうかはわかりません。

ps(1)

プロセス レベル ビューの場合:

$ ps -opid,vsz,rss,osz,args
  PID  VSZ  RSS   SZ COMMAND
 1831 1776 1008  222 ps -opid,vsz,rss,osz,args
 1782 3464 2504  433 -bash
$

vsz/VSZ: 合計仮想プロセス サイズ (kb)

rss/RSS: 常駐セット サイズ (kb、不正確な可能性があります (!)、man を参照)

osz/SZ: メモリ内の合計サイズ (ページ)

ページからバイト サイズを計算するには:

$ sz_pages=$(ps -o osz -p $pid | grep -v SZ )
$ sz_bytes=$(( $sz_pages * $(pagesize) ))
$ sz_mbytes=$(( $sz_bytes / ( 1024 * 1024 ) ))
$ echo "$pid OSZ=$sz_mbytes MB"

vmstat(1M)

$ vmstat 5 5 
 kthr      memory            page            disk          faults      cpu
 r b w   swap  free  re  mf pi po fr de sr rm s3 -- --   in   sy   cs us sy id
 0 0 0 535832 219880  1   2  0  0  0  0  0 -0  0  0  0  402   19   97  0  1 99
 0 0 0 514376 203648  1   4  0  0  0  0  0  0  0  0  0  402   19   96  0  1 99
^C

prstat(1M)

   PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/NLWP       
  1852 martin   4840K 3600K cpu0    59    0   0:00:00 0.3% prstat/1
  1780 martin   9384K 2920K sleep   59    0   0:00:00 0.0% sshd/1
  ...

swap(1)

「長いリスト」と「要約」モード:

$ swap -l
swapfile             dev  swaplo blocks   free
/dev/zvol/dsk/rpool/swap 256,1      16 1048560 1048560
$ swap -s 
total: 42352k bytes allocated + 20192k reserved = 62544k used, 607672k available
$

top(1)

古いバージョン (3.51) は、Sun の Solaris コンパニオン CD で入手できますが、これは「コミュニティ (Sun ではなく) サポートされている」という免責条項が付いています。最新のバイナリ パッケージは、sunfreeware.com または blastwave.org から入手できます。

load averages:  0.02,  0.00,  0.00;                      up 2+12:31:38                                                                                            08:53:58
31 processes: 30 sleeping, 1 on cpu
CPU states: 98.0% idle,  0.0% user,  2.0% kernel,  0.0% iowait,  0.0% swap
Memory: 1024M phys mem, 197M free mem, 512M total swap, 512M free swap

   PID USERNAME LWP PRI NICE  SIZE   RES STATE    TIME    CPU COMMAND
  1898 martin     1  54    0 3336K 1808K cpu      0:00  0.96% top
     7 root      11  59    0   10M 7912K sleep    0:09  0.02% svc.startd

sar(1M)

そして、何が問題なのsarですか?:)

于 2009-01-05T08:22:13.797 に答える
17
# echo ::memstat | mdb -k
Page Summary                Pages                MB  %Tot
------------     ----------------  ----------------  ----
Kernel                       7308                57   23%
Anon                         9055                70   29%
Exec and libs                1968                15    6%
Page cache                   2224                17    7%
Free (cachelist)             6470                50   20%
Free (freelist)              4641                36   15%

Total                       31666               247
Physical                    31256               244
于 2009-01-27T19:39:52.970 に答える
2

「top」は通常、Solaris で使用できます。

そうでない場合は、ほとんどの UNIX システムで利用可能な「vmstat」に戻ります。

次のようになります (AIX ボックスから)。

vmstat

システム構成: lcpu=4 mem=12288MB ent=2.00

kthr メモリ ページ フォールト cpu
----- ----------- ------------------------ ---------- -- -----------------------
 rb avm fre re pi po fr sr cy in sy cs us sy id wa pc ec
 2 1 1614644 585722 0 0 1 22 104 0 808 29047 2767 12 8 77 3 0.45 22.3

列「avm」と「fre」は、合計メモリと空きメモリを示します。

「man vmstat」は、悲惨な詳細を取得する必要があります。

于 2008-11-25T13:57:16.790 に答える
0

Topは、ソースからコンパイルするか、sunfreeware.comからダウンロードできます。以前に投稿したように、vmstatが利用可能です(コアインストールにあると思いますか?)。

于 2008-12-01T18:30:35.990 に答える
-3

コマンドfreeいいですね。「+/- バッファ/キャッシュ」を理解するには少し時間がかかりますが、キャッシュとバッファは「空き」を評価するときに実際にはカウントされないという考えがあります。これは、すぐにダンプできるためです。したがって、空き (および使用済み) メモリの量を確認するには、キャッシュ/バッファの使用を削除する必要があります。

于 2012-02-04T11:49:40.743 に答える