2016-11-30 13 views
2

我已经在Azure上创建了带有副本集的Mongodb。我有轨应用程序打在公共IP上的副本集。我的副本集有1个主节点和2个辅助节点。我正面临来自辅助节点的响应极端滞后,但是主节点对isMaster请求的响应非常快。MS Azure上的Bitnami Mongodb ReplicaSet Set问题 - 次节点延迟响应

查询抽空太多的时间进行二次节点

COMMAND数据库= admin命令= {:ismaster => 1}

Mongoid 4.0.1 4.2.5的Rails

为什么mongodb呼叫辅助节点?如果它正在调用,我可以,但为什么它花费了大量的时间将我的应用程序请求保留大约12秒(每个辅助节点6秒)。

我很感谢你的帮助。

Sharing application log如下

I,[2016-11-30T11:27:05.351584#11924] INFO - :开始GET “/” 为175.100.138.183在二○一六年十一月三十○日11时27分:05 +0000 我,[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#调试 - : MOPED:10.0.0.4:27017 COMMAND database = admin command = {:ismaster => 1}运行时间:0.6903ms

//此次调用次级节点大约需要6秒 D,[2016-11-30T11:27 :11.356397#11924] DEBUG - :MOPED:10.0.0.5:27017 COMMAND数据库= admin命令= {: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} runtime:5999.8489ms

D,[ 2016-11-30T11:27:17.357908#11924] DEBUG - :MOPED:replica_set_public_ip:27017 QU ERY database = localhost collection = clients selector = {“_ id”=> BSON :: ObjectId('55e9a684747265a004000000')} flags = [:slave_ok] limit = 0 skip = 0 batch_size = nil fields = nil runtime:1.1453ms

d,[2016-11-30T11:27:17.360061#11924] DEBUG - :MOPED:replica_set_public_ip:27017 QUERY数据库=本地主机集合= base_users选择= { “$查询”=> {“client_

回答

0

默认情况下,除非您更改read preference参数,否则所有读取操作都将路由到主节点。这个参数可以解释为什么主节点正在呼叫辅助节点。

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

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

+0

我有默认的读取首选项为:primary。我检查了mongodb.log。但不幸的是没有问题的线索。我很难猜测是谁和为什么叫辅助节点。我们可以在配置文件中指定哪个是主设备,以便它不会在每个请求的节点上调用isMaster? –