gpt4 book ai didi

mongodb - 每 20 分钟到 2 小时体验一次 Mongo::OperationTimeout

转载 作者:可可西里 更新时间:2023-11-01 09:37:41 26 4
gpt4 key购买 nike

我似乎每隔 20 分钟 - 1 小时就会经历一次 Mongo::OperationTimeout我的堆栈:

  • 导轨 3.1.3
  • Mongoid 3(git 边缘)
  • unicorn 4.1.1
  • 2 X MongoDB 2.0.2(应该正确设置 KeepAlive 默认设置)配置为 ReplicaSet
  • Ubuntu m1.large EC2

我已尝试将 EC2 上的 KeepAlive 设置为 300,如 http://www.mongodb.org/display/DOCS/Amazon+EC2 中所述但仍然没有帮助

我试过只使用一个主配置而不是 ReplicaSet,但这也没有帮助。

下面是mongoid.conf:

production:  database: my-app-name  op_timeout: 10  read_secondary: true  max_retries_on_connection_failure: 3  identity_map_enabled: true  allow_dynamic_fields: false  hosts:    - - ip-XXX.ec2.internal      - 27017    - - ip-XXX.ec2.internal      - 27017

最佳答案

经过一些集体思考,以下是我们针对我们的情况得出的一些观点:

  • 我们使用 mongoid 3.0 和 op_timeout: 30(Mongoid 2.3 及以下版本没有启用 op_timeout),这实际上使 OperationTimeout float 。可能许多其他用户也遇到过这种情况,但实际上并没有在日志中得到这种情况,而只是卡住了 unicorn worker 。
  • 我们使用的是 Unicorn,它会提前生成进程并让它们等待,这与动态扩展的 Passenger 不同。由于我们目前只是处于测试模式,并没有真正的流量,许多 worker 可能变得空闲,并且他们的 mongo 连接变得陈旧。大多数人可能也没有做到这一点,但可能时不时地会遇到这种情况。
  • 这里 www.mongodb.org/display/DOCS/Troubleshooting#Troubleshooting-Socketerrorsinshardedclustersandreplicasets 中描述的 Linux KeepAlive 似乎没有帮助
  • 目前,我已经创建了一个虚拟 Rack 中间件来执行初始 mongo 查询并在需要时处理异常。这是代码 https://gist.github.com/1647879

关于mongodb - 每 20 分钟到 2 小时体验一次 Mongo::OperationTimeout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8913867/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com