Read and Write Performance
Common check items:
- If the error message Timeout is displayed in the database, check whether the number of connections to the instance reaches the upper limit.
- Check method: View the monitoring metric to check whether the maximum number of active connections has been reached.
- Solution: See What Can I Do If the Number of Connections of an Instance Reaches Its Maximum?
- Check whether the instance is properly connected.
- Check method: Check whether multiple mongos nodes in a cluster instance are connected and whether both the primary and standby nodes in a replica set instance are connected.
- Solution: If you connect to a cluster instance, connect to multiple mongos nodes at the same time to share the load and improve availability. If you connect to a replica set instance, connect to both the primary and standby nodes. This improves read/write performance and prevents errors reported when data is written from the client after a primary/standby switchover.
- Check whether the monitoring metrics of the instance are normal.
- Check method: View monitoring metrics to check the CPU usage and memory usage.
- Solution: If the CPU and memory metrics are abnormal, check whether the client service load is too centralized or instance data is too intensive. If the client service load is too centralized, optimize the client architecture. If data is too intensive, shard data.
- Check whether there are too many slow query logs.
Check method: For details, see Viewing Slow Query Logs.
Solution: For details, see Slow Operation Optimization.
Other precautions:
- During the query, select only the fields that need to be returned. When modifying data, modify only the fields that need to be modified. Do not directly store all modifications of the entire object. In this way, the network and processing loads are reduced.
- In the same service scenario, reduce the number of interactions with the database and query data at a time if possible.
- In a single instance, the total number of databases cannot exceed 200, and the total number of collections cannot exceed 500.
- Before bringing a service online, perform a load test to measure the performance of the database in peak hours.
- Do not execute a large number of concurrent transactions at the same time or leave a transaction uncommitted for a long time.
- Before the service is brought online, execute the query plan to check the query performance for all query types.
- Check the performance baseline of the instance specifications and analyze whether the current service requirements reach the upper limit.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.