topの%MEM値が合計使用メモリに加算されないのはなぜですか?


18

現在、VPSでパフォーマンスの問題をデバッグしています。そのために、どのプロセスが最もメモリを消費しているかを理解しようとしています。トップを読んで、ここに私が得るものがあります:

Mem:    366544k total,   321396k used,    45148k free,      380k buffers
Swap:  1048572k total,   592388k used,   456184k free,     7756k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                  
12339 ruby      20   0  844m  74m 2440 S    0 20.8   0:24.84 ruby                                                                                     
12363 ruby      20   0  844m  73m 1576 S    0 20.6   0:00.26 ruby                                                                                     
21117 ruby      20   0  171m  33m 1792 S    0  9.3   2:03.98 ruby                                                                                     
11846 ruby      20   0  858m  21m 1820 S    0  6.0   0:09.15 ruby                                                                                     
21277 ruby      20   0  219m  11m 1648 S    0  3.2   2:00.98 ruby                                                                                     
  792 root      20   0  266m  10m 1024 S    0  3.0   1:40.06 ruby                                                                                     
  532 mysql     20   0  234m 4760 1040 S    0  1.3   0:41.58 mysqld                                                                                   
  793 root      20   0  250m 4616  984 S    0  1.3   1:20.55 ruby                                                                                     
  586 root      20   0  156m 4532  848 S    0  1.2   6:17.10 god                                                                                      
12315 ruby      20   0  175m 2412 1900 S    0  0.7   0:07.55 ruby                                                                                     
 3844 root      20   0 44036 2132 1028 S    0  0.6   1:08.22 ruby                                                                                     
10939 ruby      20   0  179m 1884 1724 S    0  0.5   0:08.33 ruby                                                                                     
 4660 ruby      20   0  229m 1592 1440 S    0  0.4   2:55.46 ruby                                                                                     
 3879 nobody    20   0 37428  964  520 S    0  0.3   0:01.99 nginx 

ご覧のとおり、私のメモリは約90%使用されています(これが私の問題です)が、%MEM値を合計すると、約50〜60%だけになります。同じことで、RESの合計は最大350MBではありません。どうして?それらの意味を誤解していますか?

ありがとう


topは表示サイズで表示される行数を調整するため、すべてのプロセスが表示されない場合があります。
サミック

回答:


6

どのプロセスが最もメモリを消費するかを理解しようとしています。

それは簡単です:ルビー

%MEM値を合計すると、約50〜60%のみになります

実際、示されているように列を合計すると69.2%になります。

  • Samikが指摘したように、それは確かにあなたのシステム上のすべてのプロセスが含まれていません-してみてくださいpastebinningの出力top -b -n 1ファイルにすべての出力を取得すると、私たちはより良いあなたを助けることができるように、私たちとそれを共有します。

  • また、カーネルはある程度のメモリを消費し、VPSの種類(Xen、KVMなど)は、ブート時に内部使用のために追加のメモリを予約します。出力dmesgも貼り付けます。

より良いメトリックと使いやすさのために、「ユーザーランドスレッドを非表示にする」オプションを有効にして、topではなくhtophtopをインストールするを使用することをお勧めします。

ここに画像の説明を入力してください

以下もご覧くださいmemtop

ここに画像の説明を入力してください


完全なトップ出力は次のとおりです:paste.ubuntu.com/1055673およびdmesg:paste.ubuntu.com/1055674 htopを使用すると、別の出力が得られます。22.4%MEMプロセスのうち3つが見られますが、実際には、多くのプロセスが重複しています(mysqldも何度も)。いずれにしても、私は出力が好きで、ずっときれいです... Memtopもかっこいいです。どのrubyアプリが最も多くのメモリを消費しているのかをよりよく理解できます;)
ben

0

linux topコマンドは、ram使用されているメモリ全体を表示します。あなただけでなくシステムも表示されます。Linuxのcachesコンピュータをspeeedingするために、あなたのハードディスクから一部の地域。他のmemモニターを使用することをお勧めします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.