宝塔面板:服务器内存使用率过高,80%是一个节点
许多朋友在使用云主机时,宝塔面板上看到内存显示圈变红后,心里非常就不舒服了,这种心情可以理解。不少网友于是抱怨,服务器的内存耗用太高了。
服务器内存使用率到底多高才算高?是一尺还是一丈,三楼层高还是四层楼高?也许我们可以对比一下MongoDB数据库的承载能力尽可能地给一个量化数据。
以基于开源非关系型数据库 MongoDB 面向非关系型数据库性能参数为例:
这样一来,我们看宝塔面板上的内存使用率,心里也更有底了。
服务器内存使用率到底多高才算高?是一尺还是一丈,三楼层高还是四层楼高?也许我们可以对比一下MongoDB数据库的承载能力尽可能地给一个量化数据。
以基于开源非关系型数据库 MongoDB 面向非关系型数据库性能参数为例:
MongoDB 实例
类别 | 指标英文名 | 指标中文名 | 含义 | 单位 | 维度 |
---|---|---|---|---|---|
请求类 | Inserts | 写入请求次数 | 单位时间内写入次数 | 次 | target(实例 ID) |
Reads | 读取请求次数 | 单位时间内读取次数 | 次 | 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% 内存使用率过高容易引起服务响应速度变慢,服务器登录不上等系统层面问题。
这样一来,我们看宝塔面板上的内存使用率,心里也更有底了。
精选留言