-1
free -m 
             total       used       free     shared    buffers     cached
Mem:          7974       6993        981          0        557        893
-/+ buffers/cache:       5542       2432
Swap:         2047          0       2047

私のシステムが 5542MB のメモリを使用していることがわかりますが、ps aux を使用して誰がそれを使用しているかを確認すると、わかりませんでした。

ps aux | awk '$6 > 0{print $3, $4, $5, $6}'
%CPU %MEM VSZ RSS
0.0 0.0 10344 700
0.0 0.0 51172 2092
0.0 0.0 51172 1032
0.0 0.0 68296 1600
0.0 0.0 12692 872
0.0 0.0 33840 864
0.0 0.0 10728 376
0.0 0.0 8564 648
0.0 0.0 74856 1132
53.2 0.5 930408 45824
0.0 0.0 24236 1768
0.0 0.0 51172 2100
0.0 0.0 51172 1040
0.0 0.0 68296 1600
51.9 0.5 864348 42740
0.0 0.0 34360 2672
0.0 0.0 3784 528
0.0 0.0 3784 532
0.0 0.0 3784 528
0.0 0.0 3784 528
0.0 0.0 3784 532
0.0 0.0 65604 900
0.0 0.0 63916 832
0.0 0.0 94020 5980
0.0 0.0 3836 468
0.0 0.0 93736 4000
0.0 0.0 3788 484
0.0 0.0 3652 336
0.0 0.0 3652 336
0.0 0.0 3684 344
0.0 0.0 3664 324
0.0 0.0 19184 4880
0.0 0.0 3704 324
0.0 0.0 340176 1312
0.0 0.0 46544 816
0.0 0.0 10792 1092
0.0 0.0 3824 400
0.0 0.0 3640 292
0.0 0.0 3652 332
0.0 0.0 3652 332
0.0 0.0 3664 328
0.0 0.0 4264 1004
0.0 0.0 4584 2368
0.0 0.0 77724 3060
0.0 0.0 89280 2704

ご覧のとおり、RSS の合計は 152.484MB、VSZ の合計は 3376.34MB です。つまり、誰が残りのメモリ、つまりカーネルを消費しているのかわかりません。

4

1 に答える 1

2

私のシステムから:

$ grep ^S[^wh] /proc/meminfo 
Slab:            4707412 kB
SReclaimable:    4602900 kB
SUnreclaim:       104512 kB

これら 3 つのメトリックは、スラブ アロケーターが保持するデータ構造です。再利用できませんが、システム内の他のキャッシュとSUnreclaimable同様に、メモリ不足のプロセスで利用できるようになります。SReclaimable残念ながら、この古い私の回答でfree詳しく説明されているように、それを考慮していないようであり、メモリのこの部分は簡単に数GBのメモリに増加する可能性があります...

プロセスが使用しているメモリの量を本当に知りたい場合は、私の投稿で説明されているキャッシュを空にする手順を試すことができます。システムがスワップ メモリを使用していないように見えるため、スワップ関連の部分をスキップできます。 .

于 2013-01-07T07:45:44.143 に答える