文档数据库服务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日

活动期间,华为云用户通过活动页面购买云服务,或使用上云礼包优惠券在华为云官网新购云服务,累计新购实付付费金额达到一定额度,可兑换相应的实物礼品。活动优惠券可在本活动页面中“上云礼包”等方式获取,在华为云官网直接购买(未使用年中云钜惠活动优惠券)或参与其他活动的订单付费金额不计入统计范围内;

  • 云数据库 GaussDB

    华为新一代企业级分布式关系型数据库产品

    了解更多
  • 云数据库 GaussDB(for MySQL)

    华为新一代完全兼容MySQL的企业级数据库

    立即前往
  • 云数据库 RDS for MySQL

    全球最受欢迎的开源数据库之一

    立即下载
  • GeminiDB Cassandra 接口

    兼容Cassandra/DynamoDB协议,适用于社交场景对关注、发帖、点赞等操作存储

    立即加入
  • 文档数据库服务DDS

    完全兼容MongoDB生态的文档数据库服务

    立即前往
  • GeminiDB Redis 接口

    提供一键部署、快速备份恢复、计算存储独立扩容、监控告警等服务能力

    立即前往

文档数据库服务DDS相关名词解释