2

我在 Azure 上创建了带有副本集的 Mongodb。我有 Rails 应用程序在公共 IP 上命中副本集。我的副本集有 1 个主节点和 2 个辅助节点。我正面临来自辅助节点的响应极度滞后,但主节点对 isMaster 请求的响应非常快。

查询需要很长时间的辅助节点

命令数据库=管理员命令={:ismaster=>1}

Mongoid 4.0.1 导轨 4.2.5

为什么mongodb调用辅助节点?如果它正在调用我很好,但是为什么它需要这么多时间来保持我的应用程序请求大约 12 秒(每个辅助节点 6 秒)。

我提前感谢您的帮助。

共享应用程序日志如下

I, [2016-11-30T11:27:05.351584 #11924] INFO -- : 2016-11-30 11:27:05 +0000 开始 GET "/" for 175.100.138.183 I, [2016-11-30T11: 27:05.352680 #11924] INFO -- : WelcomeController#index 作为 HTML I 处理,[2016-11-30T11:27:05.352786 #11924] INFO -- : 参数:{"request_client"=>"production_abc_io", "client_database "=>"本地主机"}

// 这个对主节点的调用返回快速响应 D, [2016-11-30T11:27:05.356846 #11924] DEBUG -- : MOPED: 10.0.0.4:27017 COMMAND database=admin command={:ismaster=>1} runtime : 0.6903ms

//对辅助节点的调用大约需要 6 秒 D, [2016-11-30T11:27:11.356397 #11924] DEBUG -- : MOPED: 10.0.0.5:27017 COMMAND database=admin command={:ismaster=>1}运行时间:5999.3523ms

//调用另一个辅助节点大约需要 6 秒 D, [2016-11-30T11:27:17.356509 #11924] DEBUG -- : MOPED: 10.0.0.6:27017 COMMAND database=admin command={:ismaster=>1运行时间:5999.8489ms

D,[2016-11-30T11:27:17.357908 #11924] DEBUG -- : MOPED: replica_set_public_ip:27017 QUERY database=localhost collection=clients selector={"_id"=>BSON::ObjectId('55e9a684747265a004000000')} 标志=[:slave_ok] limit=0 skip=0 batch_size=nil fields=nil 运行时间:1.1453ms

D,[2016-11-30T11:27:17.360061 #11924] DEBUG -- : MOPED: replica_set_public_ip:27017 QUERY database=localhost collection=base_users selector={"$query"=>{"client_

4

1 回答 1

0

默认情况下,除非您更改了读取首选项参数,否则所有读取操作都将路由到主节点。这个参数可以解释为什么主节点调用辅助节点。

为了弄清楚为什么对辅助节点的查询很慢,您可以查看位于“/opt/bitnami/mongodb/logs/mongodb.log”的 mongodb 日志。也许那里有一些信息。

此外,您可以使用该mongotop命令监视每个集合的基本使用情况统计信息,并使用该mongostats命令监视基本 MongoDB 服务器统计信息。

于 2016-12-01T15:23:04.680 回答