在生成环境中,经常遇到MONGODB等待队列很高,下面对常用情况进行分析:
1、没有建立索引,导致全表扫描,系统压力飙升
处理该问题的常见方法是,查询mongostat查看哪个库锁严重,然后查看mongodb log日志,查找执行时间久的操作,然后找到对应的Collection,然后建立合适索引
2、复制集重新同步导致压力飙升
查看当前数据库是否存在复制集重新同步的情况,重新同步会占用大量资源。
解决方案:
在云服务器环境,考虑先升级PRIMARY NODE的CPU和内存,等同步完成后再降低CPU和内存,为重新同步提升同步性能。
3、磁盘性能问题
如果索引建立了,复制集也不存在重新同步,考虑磁盘性能问题,磁盘可以考虑使用SSD硬盘。
4、单机性能瓶颈
当前面的问题都不存在后,可以考虑单机性能瓶颈,考虑集群方案,做sharding