我在Azure上创建了带有副本集的Mongodb。我有rails应用程序命中公共IP上的副本集。我的副本集有1个主节点和2个辅助节点。我在次要节点的响应中面临极端延迟,但主要节点对isMaster请求的响应非常快。
查询为辅助节点花费了很多时间
COMMAND database = admin command = {:ismaster => 1}
Mongoid 4.0.1 Rails 4.2.5
为什么mongodb调用辅助节点?我很好,如果它正在调用,但为什么花了这么多时间来保持我的应用程序请求大约12秒(每个辅助节点6秒)。
我提前感谢您的帮助。
I,[2016-11-30T11:27:05.351584#11924] INFO - :在2016-11-30 11:27:05 +0000开始获取175.100.138.183的“/” I,[2016-11-30T11:27:05.352680#11924] INFO - :WelcomeController处理#index为HTML 我,[2016-11-30T11:27:05.352786#11924]信息 - :参数:{“request_client”=>“production_abc_io”,“client_database”=>“localhost”}
//对主节点的此调用返回快速响应 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} runtime: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 QUERY 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 database = localhost collection = base_users selector = {“$ query”=> {“client _
答案 0 :(得分:0)
默认情况下,除非您更改了read preference参数,否则所有读取操作都将路由到主节点。此参数可以解释主节点调用辅助节点的原因。
为了弄清楚为什么对辅助设备的查询速度慢,你可以查看位于'/opt/bitnami/mongodb/logs/mongodb.log'的mongodb日志。也许那里有一些信息。
此外,您可以使用mongotop
命令监控每个集合的基本使用情况统计信息,并使用mongostats
命令监控基本的MongoDB服务器统计信息。