0

サーバー リソースの使用状況を確認していたところ、「cma」プロセスが大量の RAM を使用していることに気付きました。

top - 15:04:54 up 127 days, 21:00,  1 user,  load average: 0.27, 0.33, 0.24
Tasks: 157 total,   1 running, 156 sleeping,   0 stopped,   0 zombie
Cpu(s):  6.9%us,  0.3%sy,  0.0%ni, 92.6%id,  0.1%wa,  0.0%hi,  0.1%si,  0.0%st
Mem:   4043700k total,  4006616k used,    37084k free,   146968k buffers
Swap:  1052248k total,  1052240k used,        8k free,  1351364k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND           
 4308 root      16   0 2080m 977m 4708 S  0.0 24.8   0:00.02 cma                 
 4396 root      15   0 2080m 977m 4708 S  0.0 24.8   0:00.10 cma                 
 4397 root      16   0 2080m 977m 4708 S  0.0 24.8   3:47.36 cma                 
 4398 root      15   0 2080m 977m 4708 S  0.0 24.8   2:31.40 cma                
 4399 root      15   0 2080m 977m 4708 S  0.0 24.8   0:00.34 cma                 
 4400 root      18   0 2080m 977m 4708 S  0.0 24.8   0:00.00 cma                 
 4403 root      15   0 2080m 977m 4708 S  0.0 24.8   0:47.36 cma                 
 4404 root      18   0 2080m 977m 4708 S  0.0 24.8   0:00.07 cma                 
 4405 root      18   0 2080m 977m 4708 S  0.0 24.8   0:00.04 cma                 
 4406 root      15   0 2080m 977m 4708 S  0.0 24.8   0:12.14 cma                 
 4408 root      19   0 2080m 977m 4708 S  0.0 24.8   0:00.00 cma       

昨年のこのフォーラムの投稿を見つけましたが、これらのプロセスは McAfee ウイルス スキャンに関係しているようです。

プロセスの 1 つで pmap を実行したところ、出力の最後の行が次のようになりました。

mapped: 2130892K    writeable/private: 2113632K    shared: 40K

このプロセスは本当に 2.1GB のメモリを使用していますか? トップはメモリ使用量を正確に報告していますか>

ありがとう!

4

1 に答える 1

2

VIRT 列は、プロセスにマップされた仮想メモリ セグメントの合計サイズを示します。これには、実行可能ファイル自体、ライブラリ、データ セグメント、スタック、ヒープ、メモリ マップ ファイルなどが含まれます。ある意味では、これはメモリの合計量です。プロセスが現在、何らかの方法 (読み取り、書き込み、実行) でアクセスする権限を持っていること。プロセスは必ずしもそのすべてを使用しているわけではありません。これは、RES 列がより少ない数を報告するいくつかの理由の 1 つです。RES は、現時点で実際に物理メモリにある VIRT サイズのサブセットの合計サイズです。これは、プロセスが実際に使用しているメモリの量を示すより良い (ただし、それほど大きくはない) 測定値です。プロセスがメモリ内にあるという事実は、プロセスがアクティブに使用されている、または現在使用されていることを示します。ただし、システムに大量のメモリがある場合は、その RES 番号の一部は 3 日前に使用された可能性があり、それ以降は使用されていない可能性があるため、積極的に使用されていない可能性があります。逆に、メモリが不足している場合、プロセスは RES が現在示しているよりも多くを積極的に使用しようとしている可能性があり、その結果、ページング/スワッピング アクティビティとパフォーマンスの問題が発生します。

次に、一部のタイプのメモリ (実行可能ファイル、ライブラリ) がプログラムの複数のインスタンス間で共有される傾向、IPC タイプの共有メモリの存在、および「このプロセスが使用しているメモリの量? "...

つまり、想像するほど単純な問題ではありません...

于 2014-07-10T16:20:16.673 に答える