MongoDB集群性能优化
来源:互联网 发布:网络有线继电器 编辑:程序博客网 时间:2024/05/16 07:25
1、软件方面
- MongoDB版本选择
- 锁粒度
- Global(2.2-)
- DB锁(2.2+)
- Collection(2.4+)
- Document锁(2.6+)
- 读写锁、写优先锁
- 性能逐渐增强
- 启发
- 尽量选择新的稳定版本
- 性能提升
- 稳定
- bugs fixed
- 索引创建
- 设计不合理
- 长索引
- 字符串等
- id
- objectid
- 12字节
- 应用程序替换
- 月业务需要
- uid
- 灵活控制
- 索引设计过多
- 索引使用不合理
- 启发
- 使用短索引
- 小索引字段
- 业务
- 合理设计
- 数据量增大
- 热点数据超过内存
- 频繁swap
- 导致性能地下
- 内存规划
- 内存大于热门数据加上索引
- 启发
- 加大内存容量
- 数据空洞
- 大量删除数据
- 造成大量数据碎片和空间
- 内存中包含空洞数据
- 利用率低
- 数据收缩
- Online compact
- offline收缩
- 数据库无空洞、无碎片、进奏、性能较高
2、硬件方面
- 物理内存小
- 硬盘性能检查
- 无法满足目前的读写并发
- 优化方案
- 加大内存容量
- 硬件类型
- SSD》SDS》SATA
3、如何尽快发现MongoDB集群性能问题
- 监控的方式
- 机器资源监控
- CPU资源
- 核心数
- top
- 内存资源
- 内存使用和剩余情况
- free -g
- 磁盘资源
- 磁盘空间
- df -h
- 性能
- iostat -xdk 1
- 网络资源
- ifstat 1
- 负载均衡
- load average
- <=总核数
- 语义监控
- 进程管理
- 是否正常工作
- 模拟发送请求
- 预期结果对比
- 如果持续返回错误表示性能有问题
- 错误日志监控
- 进程管理
- 服务是否正常
- 阈值设置1分钟
- 基于日志的准实时统计
- 如果超过阈值性能,数据集群可能出现问题
- monostat
- 读写情况、加锁、索引命中、缺页终端、读写
- 监控分析
- locked、faults、miss、qr|qw
- 内存、内冷数据、索引设置不合理、qr|qw堆积
- mongotop
- 追踪mongodb读写所用时间
- 表级性能问题
- 表级读写时间
- 如何收缩数据提升性能
- Online Compress
- Offline 收缩数据
- 如何Scale Up方式提升性能
- 概念
- Scale Vertically
- 纵向扩展
- 软件方面
- 锁粒度问题
- 索引优化
- 更紧凑索引
- 业务层优化
- SQL语义优化
- 批量读写优化
- 连接池优化
- 如何Scale out方式提升性能
- 概念
- Scale horizontally
- 横向扩展,向外扩展
- 数据迁移
- 增加一个新增副本集合
- 更通用数据迁移方案
- 时效性
- 过去作废
- 迁移简单
- 业务开始写入,到时终止
- 永久数据
- 消息队列(写入命令进行回放)
- 中间存储快照
- 集群优化集合
- 尽早发现
- 机器监控报警
- 语义控制报警
- 错误日志报警
- mongostat
- mongotop
- scale out
- scale up
0 0
- MongoDB集群性能优化
- 生产环境部署MongoDB集群——性能优化
- mongodb 性能优化
- mongodb性能优化
- mongodb 性能优化深入浅出
- mongodb性能优化
- mongodb性能优化
- mongodb性能监控优化
- mongodb性能优化
- MongoDB性能优化
- 浅谈Mongodb性能优化
- MongoDB的性能优化
- MongoDB性能优化
- Mongodb性能优化
- mongodb性能优化
- redis集群性能优化
- MongoDB---性能优化---(1)
- 如何优化mongodb的性能
- 西北
- 学习国嵌嵌入式视频笔记
- bzoj1045: [HAOI2008] 糖果传递
- 【Linux指令】文件操作
- android 沉浸式状态栏颜色
- MongoDB集群性能优化
- 多线程的基础理论
- INSERT的两种写法
- shell,bash操作快捷键
- 侵入式状态栏
- libcurl.so.4: cannot open shared object file: No such file or directory
- 对象的使用
- VS2013 版本秘钥
- reactive学习