I have set up a MongoDB cluster in the OpenShift environment. This cluster will be accessed by multiple application pods invoking database reads, writes, and updates. Recently, I have noticed too much slowness in the query execution and which in turn caused all the database interactions to slow up and taking a lot of time for simpler query execution. During certain times the cluster pods get killed due to OOM error.
MongoDB cluster 3 pods (with one acting as a primary, the other two are syncing) each assigned a memory of 4GB.
My question is when the load is getting increased to one MongoDB pod, the other MongoDB pods are not coming into the picture to handle requests from applications. Is there any possibility to configure this feature at the database level like MongoDB support to get request to all three MongoDB pods at the same time and also performs the backend database sync operation simultaneously?
DB consists of 2 collections with a total of 36GB of data and a max of 450 requests per minute hitting the db.
Also, what is the best way to analyze the slowness and performance of the MongoDB cluster?