
# 内存使用率高问题排查
#### 操作场景
使用文档数据库时，当实例的内存使用率达到90%，SWAP利用率超过5%时，此时认为实例的内存已达瓶颈，会导致系统响应慢，甚至出现内存溢出（OOM）的隐患，从而影响业务稳定运行。
本章节主要介绍排查解决实例内存使用率高的问题。
#### 操作步骤
#### 查看内存使用情况
您可以通过查看监控指标（内存使用率和SWAP利用率），了解实例内存的使用情况。
具体操作请参见[查看监控指标](https://support.huaweicloud.com/usermanual-dds/dds_03_0076.html)。
图1查看内存使用情况   
![](https://support.huaweicloud.com/usermanual-dds/zh-cn_image_0000002374857953.png "点击放大")
![](https://support.huaweicloud.com/usermanual-dds/public_sys-resources/note_3.0-zh-cn.png)
MongoDB的缓存默认会预留50%的内存，所以即使在实例空载状态下，监控指标仍然会显示内存占用50%，是正常现象，可以忽略。
#### 解决方案
1. 控制并发连接数。连接数据库时，需要计算业务一共有多少个客户端， 每个客户端配置的连接池大小是多少，总的连接数不宜超过当前实例能承受的最大连接数的80%。连接太多会导致内存和多线程上下文的开销增加，影响请求处理延时。
2. 建议配置连接池，连接池最大不要超过200。
3. 降低单次请求的内存开销，例如通过创建索引减少集合的扫描、内存排序等。
4. 在连接数合适的情况下内存占⽤持续增⾼，建议升级内存配置，避免可能存在内存溢出和大量清除缓存而导致系统性能急剧下降。
   - 集群实例，请参见[变更集群实例的CPU和内存规格](https://support.huaweicloud.com/usermanual-dds/zh-cn_topic_0104472218.html)。
   
   - 副本集实例，请参见[变更副本集实例的CPU和内存规格](https://support.huaweicloud.com/usermanual-dds/zh-cn_topic_0104721795.html)。
   
   - 单节点实例，请参见[变更单节点实例的CPU和内存规格](https://support.huaweicloud.com/usermanual-dds/dds_03_0030.html)。
    
 
#### 相关文档
[排查DDS实例内存占用较高的问题](https://support.huaweicloud.com/bestpractice-dds/dds_0061.html)
