文档数据库服务DDS性能调优主要方法
文档数据库服务DDS读写性能提升
1、如果数据库有直接报错信息Timeout,需要检查实例的连接数是否已达到上限
检查方法:通过查看监控指标,查看当前活动连接数是否已经达到当前实例支持的最大连接数。
解决方案:请参见实例的连接数满导致实例连接失败,如何处理。
2、检查连接方式是否合理
检查方法:检查连接实例时,集群实例是否同时连接了多个mongos节点,副本集是否同时连接了主节点和备节点。
解决方案:如果是集群实例,连接实例时建议同时连接多个mongos节点,这样可以分担负载并提高可用性;如果是副本集实例,建议同时连接主备节点,这样不仅提升了数据读写性能,而且避免了在发生主备节点切换后,从客户端写入数据报错的问题。
3、分析实例的监控指标是否存在异常
检查方法:通过查看监控指标,观察CPU使用率、内存使用率等使用情况。
解决方案:如果CPU和内存指标异常,需要检查客户端业务或者实例数据是否过于集中,造成负载过高。客户端业务过于集中,则需要客户端进行架构优化。数据过于集中,则需要对数据进行必要的分片。
4、检查慢日志是否过多
检查方法:请参见查看慢日志。
解决方案:请参见慢操作优化。
文档数据库服务DDS慢请求定位方法
在相同业务场景下,架构设计和库、集合、索引等设计会影响查询性能,良好的设计可以提高查询性能,反之会出现很多慢请求(执行时间很长的语句),这些慢请求会消耗很多的系统性能,此处要介绍导致慢请求的原因和解决方案。
排查思路
DDS支持在控制台上查看慢日志信息,针对慢日志中过长的操作需要从执行最慢的操作入手,逐个进行优化。
1、对于操作执行时长超过1s时,对应的操作可能会有问题,需要视具体情况分析。
2、对于操作执行时长超过10s时,则需要优化对应的操作。
优化方案
1、对于无索引覆盖的查询,则需要根据查询条件创建对应索引。
2、对于点查可以创建hash索引。
3、对于多字段查询,单字段重复度较高的场景,创建复合索引。
4、对于范围查找,结果集有序的查询,创建升序或者降序索引。
5、对于复合索引,由于复合索引是前缀排序查询,所以查询条件的顺序
文档数据库服务DDS内存使用率高问题排查
使用文档数据库时,当实例的内存使用率达到90%,SWAP利用率超过5%时,此时认为实例的内存已达瓶颈,会导致系统响应慢,甚至出现内存溢出(OOM)的隐患。此处主要介绍排查解决实例内存使用率高的问题。
查看内存使用情况
您可以通过查看监控指标(内存使用率和SWAP利用率),了解实例内存的使用情况。具体操作请参见查看监控指标。
解决方案
1、控制并发连接数。连接数据库时,需要计算业务一共有多少个客户端, 每个客户端配置的连接池大小是多少,总的连接数不宜超过当前实例能承受的最大连接数的80%。连接太多会导致内存和多线程上下文的开销增加,影响请求处理延时。
2、建议配置连接池,连接池最大不要超过200。
3、降低单次请求的内存开销,例如通过创建索引减少集合的扫描、内存排序等。
4、在连接数合适的情况下内存占⽤持续增⾼,建议升级内存配置,避免可能存在内存溢出和大量清除缓存而导致系统性能急剧下降。
活动对象:华为云电销客户及渠道伙伴客户可参与消费满送活动,其他客户参与前请咨询客户经理
活动时间: 2020年8月12日-2020年9月11日
活动期间,华为云用户通过活动页面购买云服务,或使用上云礼包优惠券在华为云官网新购云服务,累计新购实付付费金额达到一定额度,可兑换相应的实物礼品。活动优惠券可在本活动页面中“上云礼包”等方式获取,在华为云官网直接购买(未使用年中云钜惠活动优惠券)或参与其他活动的订单付费金额不计入统计范围内;