0

利用可能なメモリが 2GB あり、dataSize が現在約 4GB で、ドキュメントが 500 万を少し下回っているのに、Mongo が 300 ~ 400MB を超えるメモリを消費しない理由を誰か教えてもらえますか?

大量のドキュメントを処理するクエリでも、メモリ消費量は急増しません。同じサーバーで他のプロセスをいくつか実行していますが、New Relic を見ていると、メモリ消費量が 500MB を超えることはありません。

この場合に問題があるかどうかはわかりませんが、サーバーは KVM で仮想化されています。64ビットバージョンを使用しているため、32ビットの制限はありません。

cat /proc/meminfoを編集

MemTotal:        2051488 kB
MemFree:          205420 kB
Buffers:            8472 kB
Cached:          1346496 kB
SwapCached:        43224 kB
Active:          1208548 kB
Inactive:         551952 kB
Active(anon):     162448 kB
Inactive(anon):   243196 kB
Active(file):    1046100 kB
Inactive(file):   308756 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       4194300 kB
SwapFree:        4041128 kB
Dirty:               812 kB
Writeback:             0 kB
AnonPages:        397844 kB
Mapped:           222180 kB
Shmem:                72 kB
Slab:              40728 kB
SReclaimable:      28304 kB
SUnreclaim:        12424 kB
KernelStack:        1800 kB
PageTables:        13832 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     5220044 kB
Committed_AS:    1404372 kB
VmallocTotal:   34359738367 kB
VmallocUsed:        9888 kB
VmallocChunk:   34359728471 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       53228 kB
DirectMap2M:     2043904 kB
4

1 に答える 1

1

free -mまたはを実行するcat /proc/meminfoと、メモリ使用量の内訳を確認できるはずです。

バッファは、ディスク ブロックをキャッシュするために使用される RAM の量に関連しています。Cached は、ファイルの読み取りからキャッシュされたページであることを除いて、バッファーに似ています。

これらが高い場合は、先読み設定が大きすぎて、MongoDB が残りのメモリを使用できず、パフォーマンスが低下していることを示しています。

于 2013-03-12T11:57:08.577 に答える