-
Notifications
You must be signed in to change notification settings - Fork 3
1.1 Infrastructure
MongoDB can be run in the cloud through MongoDB Atlas, or on local server. If MongoDB is in the cloud it has no hardware requirements.
MongoDB does not support 32-bit x86 platforms.
MongoDB 3.4 supports x86_64/amd64, ARMv8-A. The Enterprise version also supports s390x, and POWER8(little endian).
Use RAID10 and SSD drives for optimal performance. SAN and Virtualization: Ensure that each mongod has provisioned IOPS for its dbPath, or has its own physical drive or LUN. Avoid dynamic memory features, such as memory ballooning, when running in virtual environments. Avoid placing all replica set members on the same SAN, as the SAN can be a single point of failure.
Hardware use depends on storage engine used by MongoDB. Storage Engines manage how data is stored and memory and on disk.
Default storage engine for all versions is currently WiredTiger. It is multithreaded and benefits from use of XFS file system.
Starting in 3.4, the WiredTiger internal cache, by default, will use the larger of either:
50% of (RAM - 1 GB), or 256 MB.
For example, on a system with a total of 4GB of RAM the WiredTiger cache will use 1.5GB of RAM (0.5 * (4 GB - 1 GB) = 1.5 GB).
A system with a total of 1.25 GB of RAM will allocate 256 MB to the WiredTiger cache because that is more than half of the total RAM minus one gigabyte (0.5 * (1.25 GB - 1 GB) = 128 MB < 256 MB). from: https://docs.mongodb.com/manual/core/wiredtiger/#memory-use
Supported until MongoDB 4.0 is MMAPv1 which was default for versions 3.0 and older. It is concurrent and minimum requirements if using MMAPv1 is access two real cores or one physical CPU for mongod or mongos. XFS or EXT4 file system is preferable.
MongoDB Enterprise has In-Memory Storage Engine. It is concurrent, not persistent, and maintains little disk data. It uses 50% of physical RAM - 1 GB but this can be reconfigured. Can be used in instances that are part replica sets or sharded clusters.
For more info https://docs.mongodb.com/manual/administration/production-notes/, https://docs.mongodb.com/manual/core/inmemory/
Some case studies of other companies planning hardware requirements are found here https://www.mongodb.com/blog/post/capacity-planning-and-hardware-provisioning-mongodb-ten-minutes
Possibly useful example for calculating size of database where contents are added and stored for a length of time.
formula for calculating size N = i * (t + 10) + p
p: Number of assets that are permanently in the system
t: Max number of days an asset is kept in the system after ingestion
i: Number of assets ingested per day (24h)
N: Total number of assets in the system at any given time.
Disk space (Megabytes) = N * 0,01
this example is from https://learn.fotoware.com/02_FotoWeb_8.0/05_Configuring_sites/Setting_the_MongoDB_instance_that_FotoWeb_uses/MongoDB_disk_and_memory_requirements
Supports Windows 7. Recommended operating systems for production use with MongoDB:
- Amazon Linux
- Debian 8
- RHEL / CentOS 6.2+
- SLES 12
- Ubuntu LTS 16.04
- Windows Server 2012 R2
Linux kernel version 2.6.36 or later and XFS or EXT4 filesystem.
MongoDB 3.4 Enterprise Advanced is compatible with IBM POWER SYSTEM. For more information https://developer.ibm.com/linuxonpower/2017/01/17/mongodb-3-4-now-available-for-new-platforms-including-power/
MongoDB may run more efficiently on Linux: https://stackoverflow.com/questions/24178128/why-mongodb-performance-better-on-linux-than-on-windows
GS1 Canada® is a registered trademark of GS1 Canada. Copyright © GS1 Canada 2018.