How to Properly Scale and Maintain MongoDB

By April 18, 2018 August 18th, 2022 No Comments

The ease of installing and running MongoDB can lead to neglect of basic database management. Then one day you’re getting frantic calls from a client or coworker about an application that’s crashed. Your current MongoDB setup couldn’t handle the increased usage and simply gave up.

Not accounting for growth and increased data needs is a failure of scaling. Here are some things you can do to make sure your MongoDB setup can handle your workload at any point.

Apply Good DevOps Practices

The convenience of MongoDB doesn’t free you from the responsibility of applying a good DevOps strategy. Your database still needs a sound schema, careful monitoring of data loads, a good indexing strategy, and enough hardware resources to support large data clusters. Poor design or implementation of any of these factors can lead to failure.

If you’re looking for a good storage engine option for MongoDBObjectRocket offers a Percona solution to support your company’s needs. Percona server gives you enterprise-level capabilities and added agility for tracking and managing your database.

Move in the Right Direction

Work with your MongoDB host to find the best way to scale your databases correctly to avoid bottlenecks. Run multiple MongoDB shards on physical servers, limiting shards to one per CPU core.

Once your MongoDB instance is properly sharded, it’s a simple process to scale out linearly across needed servers. Just remember to migrate your shards to other servers once they mature and start growing.

Keep an Eye on Everything

Are you prepared for any usage ramp-up for applications your MongoDB instances support? You’ll suddenly find yourself at the end of your capacity if you’re not keeping track of the way your clusters are handling different workload levels.

Keep an eye out for replication lag in particular. Your MongoDB needs to handle system capacity at times when your oplog window is at its shortest. Too much lag could cause data to be overwritten and not be recoverable, or cause problems with syncing up your old and new data.

If you don’t have the time or resources to keep a close eye on your MongoDB instances, a fully hosted and managed MongoDB service may be a great fit for you.

Leave the Internals Alone

There should be no reason for you to go in and tamper with your internal databases or the system collections. You should be restricting yourself to using shell helpers and administrative commands for any needed performance operations.

Any issues with functionality are most likely tied to problems with design, installation, or maintenance. The path forward should NOT be trying to force the core structures to do what you want.

Have a Security Strategy

Attacks in recent years on MongoDB instances makes it doubly important that your database have some type of security protocols in place. This means doing more than running processes on different ports. MongoDB provides you with five different ways to secure your database. Failing to do so leaves you vulnerable to a ransomware attack that cripples your processes.

Call in an outside company experienced with establishing security parameters within MongoDB if you’re unfamiliar with how to properly set them up. They can walk you through how each of the different security areas works and help you find the right configurations. Contact ObjectRocket to talk about MongoDB security.

ObjectRocket can help you set up a new MongoDB instance or help you configure your current one for the support your applications need.