优化Mongo降CPU
一、背景
前面腾讯云mongo服务采坑中提到每次水晶活动才开始的时候会吸引大量玩家来抽卡,会导致cpu居高。当然就算没有水晶活动每日凌晨跨天游戏玩法重置等入库外加新的一天较多玩家同时进入也会导致cpu比平时多挺多,如图所示。
二、降CPU
加机器
避免单实例cpu太高的方法也可以通过加机器(增加mongo服务实例)来解决,但是已经在当前实例的数据库迁移到新实例的话需要关服以及处理一些配置,这不是我们想要的。
加索引
如果更新mongo的集合不是以_id为筛选条件的话,大多时候都需要增加对应的索引,避免更新时遍历全表。事实上我们基本每个表在上线前都已经加上了索引,查看慢查询补上遗漏的几张表的索引后有少许好点,但问题依然很严重。