一、简介
产品特点:
1. 提供云数据库服务,云数据库服务是腾讯云平台面向互联网应用的数据库服务。
2. 完全兼容 MongoDB 协议,既适用于传统表结构的场景,也适用于缓存、非关系型数据以及利用 MapReduce 进行大规模数据集的并行运算的场景。
3. 提供高性能、可靠、易用、便捷的 MongoDB 集群服务,每一个实例都是至少一主一从的副本集或者是包含多个副本集的分片集群。
4. 拥有整合备份、扩容等功能,尽可能的保证用户数据安全以及动态伸缩能力。
三、分片集群
·每个副本集是一个分片。
·数据写入会根据片键经过一定的 hash 算法写入不同的片中,不需要应用程序进行分片。
·根据需要去指定读写库表。
·存储量扩容只需要添加分片即可。
四、自动容灾
·当发生意外导致主节点不可达时, 集群内部会自动选举出主节点。
·如果挂掉的是主节点,重新拉起时,那么它就会变身成一个从节点;如果拉起失败会补充新节点进入集群以达到用户所选择的集群规模。
·同样的当任何一个从节点不可达时,也会尝试拉起节点或者补充新节点。
五、在线扩容
·在 Web 控制台或者 API 发起扩容操作。
·系统根据需要按新规格创建对应数量的 Secondary 节点。
·依次把新创建的 Secondary 节点加入集群实例内部,同步数据。
·待最后一个 Secondary 节点数据同步完成以后,开始一个一个剔除原节点,剔除的原节点按先从(Secondary)后主(Primary)。
·当集群内部没有主节点时,会选举出新的主节点。
六、完整的备份机制
·MongoDB 支持全量备份和增量备份两种备份方式。
·回档功能支持实例回档和库表级别的细粒度回档,极大降低了海量数据库实例的管理难度。
七、灵活的读写分离策略
·基于 Secondary 的读写分离策略。连接参数中设置 readPreference=secondary 指定从库读。
·基于只读实例的读写分离策略。通过购买 MongoDB 主实例的一个或多个只读实例来实现读写分离需求,通过只读实例读操作来满足大量读应用需求,减轻主库的压力。
八、提供库表回档
·细粒度快速处理错误。
·可回档至7天内的任意时刻。
十二、MongoDB 实例
| 类别 | 指标英文名 | 指标中文名 | 含义 | 单位 | 维度 |
| 请求类 | Inserts | 写入请求次数 | 单位时间内写入次数 | 次 | target(实例 ID) |
| | Reads | 读取请求次数 | 单位时间内读取次数CPU 使用率(节点) | 次 | target(实例 ID) |
| | Updates | 更新请求次数 | 单位时间内更新次数 | 次 | target(实例 ID) |
| | Deletes | 删除请求次数 | 单位时间内删除次数 | 次 | target(实例 ID) |
| | Counts | count 请求次数 | 单位时间内 count 次数 | 次 | target(实例 ID) |
| | Aggregates | 聚合请求次数 | 单位时间内聚合请求次数 | 次 | target(实例 ID) |
| | Success | 成功请求次数 | 单位时间内成功请求次数 | 次 | target(实例 ID) |
| | Commands | Command 请求次数 | 单位时间内 Command 请求次数 | 次 | target(实例 ID) |
| | Timeouts | 超时请求次数 | 单位时间内超时请求次数 | 次 | target(实例 ID) |
| | Qps | 每秒钟请求次数 | 每秒操作数,包含 CRUD 操作 | 次/秒 | target(实例 ID) |
| 时延请求类 | Delay10 | 时延在10 – 50毫秒间请求次数 | 单位时间内成功请求延迟在10ms – 50ms 次数 | 次 | target(实例 ID) |
| | Delay50 | 时延在50 – 100毫秒间请求次数 | 单位时间内成功请求延迟在50ms – 100ms 次数 | 次 | target(实例 ID) |
| | Delay100 | 时延在100毫秒以上请求次数 | 单位时间内成功请求延迟在100ms 以上次数 | 次 | target(实例 ID) |
| 连接数类 | ClusterConn | 集群连接数 | 集群总连接数,指当前集群 proxy 收到的连接数 | 次 | target(实例 ID) |
| | Connper | 连接使用率 | 当前集群的连接数与集群总连接配置的比例 | % | target(实例 ID) |
| 系统类 | ClusterDiskusage | 磁盘使用率 | 集群当前实际占用存储空间与总容量配置的比例 | % | target(实例 ID) |
十三、MongoDB 副本集
| 类别 | 指标英文名 | 指标中文名 | 含义 | 单位 | 维度 |
| 系统类 | ReplicaDiskusage | 磁盘使用率 | 副本集容量使用率 | % | target(副本集 ID) |
| 主从类 | SlaveDelay | 主从延迟 | 主从单位时间内平均延迟 | 秒 | target(副本集 ID) |
| | Oplogreservedtime | oplog 保存时间 | oplog 记录中最后一次操作和首次操作时间差 | 小时 | target(副本集 ID) |
| Cache 类 | CacheDirty | Cache 脏数据百分比 | 当前内存 Cache 中脏数据百分比 | % | target(副本集 ID) |
| | CacheUsed | Cache 使用百分比 | 当前 Cache 使用百分比 | % | target(副本集 ID) |
| | HitRatio | Cache 命中率 | 当前 Cache 命中率 | % | target(副本集 ID) |
十四、MongoDB 节点
| 类别 | 指标英文名 | 指标中文名 | 含义 | 单位 | 维度 |
| 系统类 | CpuUsage | CPU 使用率 | CPU 使用率 | % | target(节点 ID) |
| | MemUsage | 内存使用率 | 内存使用率 | % | target(节点 ID) |
| | NetIn | 网络入流量 | 网络入流量 | MB/s | target(节点 ID) |
| | NetOut | 网络出流量 | 网络出流量 | MB/s | target(节点 ID) |
| | Disk | 节点磁盘用量 | 节点磁盘用量 | MB | target(节点 ID) |
| 连接数 | Conn | 连接数 | 节点连接数 | 个 | target(节点 ID) |
| 读写类 | Qr | Read 请求等待队列中的个数 | Read 请求等待队列中的个数 | 个 | target(节点 ID) |
| | Qw | Write 请求等待队列中的个数 | Write 请求等待队列中的个数 | 个 | target(节点 ID) |
| | Ar | WT 引擎的 ActiveRead | Read 请求活跃个数 | 个 | target(节点 ID) |
| | Aw | WT 引擎的 ActiveWrite | Write 请求活跃个数 | 个 | target(节点 ID) |
| TTL 索引类 | TtlDeleted | TTL 删除的数据条数 | TTL 删除的数据条数 | 个 | target(节点 ID) |
| | TtlPass | TTL 运转轮数 | TTL 运转轮数 | 个 | target(节点 ID) |
十五、告警核心指标和建议阈值
| 告警指标 | 统计粒度 | 判断条件 | 阈值 | 持续周期 | 告警方式 |
| 时延在100毫秒以上请求次数(实例) | 统计粒度1分钟 | > | 5000 | 持续一个周期 | 每三十分钟告警一次 |
| 磁盘使用率(实例) | 统计粒度1分钟 | > | 80% | 持续一个周期 | 每三十分钟告警一次 |
| 集群连接数百分比(实例) | 统计粒度1分钟 | > | 80% | 持续一个周期 | 每三十分钟告警一次 |
| 磁盘使用率(副本集) | 统计粒度1分钟 | > | 80% | 持续一个周期 | 每三十分钟告警一次 |
| CPU 使用率(节点) | 统计粒度1分钟 | > | 90% | 持续一个周期 | 每三十分钟告警一次 |
| 内存使用率(节点) | 统计粒度1分钟 | > | 90% | 持续一个周期 | 每三十分钟告警一次 |
| Qr(节点) | 统计粒度1分钟 | > | 100 | 持续一个周期 | 每三十分钟告警一次 |
| Qw(节点) | 统计粒度1分钟 | > | 100 | 持续一个周期 | 每三十分钟告警一次 |
| Ar(节点) | 统计粒度1分钟 | > | 100 | 持续一个周期 | 每三十分钟告警一次 |
| Aw(节点) | 统计粒度1分钟 | > | 100 | 持续一个周期 | 每三十分钟告警一次 |
十六、云数据库 MongoDB 实例维度
·磁盘使用率 > 80%
代表集群容量使用率,集群容量使用率达到100%会被写封禁,影响用户写入,所以需要用户注意提前扩容。
·时延在100毫秒以上请求次数 > 5000时延在100毫秒以上请求在 MongoDB 中可以理解为慢查询,是性能问题排查的重要指标。
·集群连接数百分比 > 80%
预防集群连接数过多,导致 MongoDB 服务端无法建立更多连接造成客户端无法访问 MongoDB 集群。
十七、云数据库 MongoDB 副本集维度
·磁盘使用率 > 80%
·代表副本集容量使用率,副本集容量使用率达到100%会被写封禁,影响用户写入,所以需要用户注意提前扩容。
十八、云数据库 MongoDB 节点
·CPU 使用率 > 80%
CPU 使用率过高会影响在服务器正常运行程序等系统层面问题。
·内存使用率 > 80%
内存使用率过高容易引起服务响应速度变慢,服务器登录不上等系统层面问题。
Qr>100,Qw>100,Ar>100,Aw>100
20、配置云数据库 MongoDB 告警
1. 登录 腾讯云可观测平台。
2. 选择告警管理 > 告警配置 > 告警策略,单击新建策略,选择新建自定义告警策略。
3. 进入新建告警策略页,配置告警策略。根据要求填写如下信息:
配置的 MongoDB 节点告警总览
21、配置 MongoDB 节点告警总览
配置 Dashboard
1. 登录 腾讯云可观测平台。
2. 单击 Dashboard > Dashboard 列表。
3. 在 Dashboard 列表中选择“云数据库 MongoDB 预设面板”。
·选择 MongoDB 实例
·选择 MongoDB 副本集
·选择 MongoDB 节点
·选择 MongoDB 实例,副本集,节点,系统会自动展示出预设的 Dashboard