I was recently working on a client’s site and ran into the following warning:
WARNING: You are running on a NUMA machine. We suggest launching mongod like this to avoid performance problems: numactl --interleave=all mongod [other options]
This warning shows up in the Mongo logs on startup and when you connect to the Mongo database from the command line. You won’t see this message if you’re using tools like the Mongo Management Studio. In many cases, this warning is likely ignored. It’s just a warning, right? If the system is running fine we can ignore it, right? The correct answer is “No”. The developers logged this warning for a reason.
Depending on the context, it may be a minor issue. For a development MongoDB instance, this is probably less important. For a production and/or performance testing environment, this can cause problems. In either case, it’s an easy problem to fix. Why not fix it?
The answer is provided within the warning itself. The developers even provided the recommended NUMA policy. It’s as simple as updating your startup scripts to startup the Mongo daemon with the numactl utility. If you’re missing the numactl utility, just install the RPM or download it manually. The numactl utility is designed to control the NUMA policy for a running application.
In a very simplistic explanation, non-uniform memory access (NUMA) refers to hardware with multiple microprocessors optimized for multiprocessing. Traditionally each processor accesses “shared” memory over a common bus. As you add more processors, this design does not scale. The shared bus can get overloaded during intense processing. The NUMA architecture adds a level of memory shared between a small subset of processors so that all data access does not use the common bus. Each microprocessor can access its own “local” memory faster than memory shared with other processors. This is architecture is optimized for crunching data. For more details, there is plenty of online documentation on NUMA hardware.
Remember that clean logs are important. Pay attention to your logged errors/warning messages and do some research.