Does MetaDefender Core v3 require lots of memory for MongoDB usage?

No, MetaDefender Core does not require lots of memory because MongoDB does not work in this way.

First of all, MongoDB allocates minimum Memory for "private working set" while it may allocate a lot bigger size for Working Set which include Shareable Memory which is the biggest portion. See example below.


Secondly, MetaDefender Core utilizes MongoDB ( MMAPv1) for file scanning and other logging such as application log. Please refer to MongoDB documentation for expected system memory utilization.

Please see the quote below from MongoDB FAQ for more details.

Not necessarily. It’s certainly possible to run MongoDB on a machine with a small amount of free RAM.

MongoDB automatically uses all free memory on the machine as its cache. System resource monitors show that MongoDB uses a lot of memory, but its usage is dynamic. If another process suddenly needs half the server’s RAM, MongoDB will yield cached memory to the other process.

Technically, the operating system’s virtual memory subsystem manages MongoDB’s memory. This means that MongoDB will use as much free memory as it can, swapping to disk as needed. Deployments with enough memory to fit the application’s working data set in RAM will achieve the best performance.

For better performance and a stable environment, you can reduce mongoDB memory usage by decreasing the length of log/history retention.

This article applies to MetaDefender Core v3
This article was last updated on 2017-12-20