MongoDB Documentation, Release 3.0.4 Separate Components onto Different Storage Devices For improved performance, consider separating your database’s data, journal, and logs onto different storage devices, based on your application’s access and write pat- tern. For the WiredTiger storage engine, you can also store the indexes on a different storage device. See storage.wiredTiger.engineConfig.directoryForIndexes . Note: Using different storage devices will affect your ability to create snapshot-style backups of your data, since the files will be on different devices and volumes. Scheduling for Virtual Devices Local block devices attached to virtual machine instances via the hypervisor should use a noop scheduler for best performance. The noop scheduler allows the operating system to defer I/O scheduling to the underlying hypervisor. Replica Sets See the Replica Set Architectures (page 572) document for an overview of architectural considerations for replica set deployments. Sharded Clusters See the Sharded Cluster Production Architecture (page 672) document for an overview of rec- ommended sharded cluster architectures for production deployments. Design Notes (page 218) WiredTiger can compress collection data using either snappy or zlib compression library. snappy provides a lower compression rate but has little performance cost, whereas zlib provides better compression rate but has a higher performance cost. By default, WiredTiger uses snappy compression library. To change the compression setting, see storage.wiredTiger.collectionConfig.blockCompressor . WiredTiger uses prefix compression on all indexes by default. Note: MongoDB uses the GNU C Library 65 (glibc) if available on a system. MongoDB requires version at least glibc-2.12-1.2.el6 to avoid a known bug with earlier versions. For best results use at least version 2.13. Platform Specific Considerations MongoDB on Linux Compression See also: Architecture $^{65}$http://www.gnu.org/software/libc/ Chapter 5. Administration 202