我正在运行一个相当标准的MongoDB(3.0.5)副本集,其中包含1个主副本和2个副副本。我的PHP应用程序的读取首选项是主要的,因此在次要服务器上不会发生读取 - 它们仅用于故障转移。我正在对我的应用程序进行负载测试,每秒创建大约600次查询/更新。这些操作都是针对一个有大约500,000个文档的集合运行的。但是,查询经过优化并由索引支持。任何查询最多不超过40毫秒。MongoDB副本集CPU负载
我的问题是,我在所有3个节点(200%-300%)上获得了相当高的CPU负载 - 有时副本上的负载甚至高于主节点上的负载。磁盘IO和内存使用似乎没问题 - 至少它们没有达到任何限制。
主日志文件包含大量的getmore oplog查询 - 我猜测主节点上的任何操作都会创建oplog查询。在我看来,这是太多的复制开销,但我在加载MongoDB之前没有任何经验,并且我没有任何关键数字。
由于安装程序将不得不容忍更多的生产负载,我的问题是是否需要复制开销,以及CPU负载是否正常上升,即使是在次级系统上,或者是否存在某些问题错过了?