ruby - 800 名 worker 后重新请求超时

标签 ruby redis resque

我有一个繁重的处理需要使用很多机器来完成。目前,Resque 有 700 名工作人员在运行,一切正常。但是,如果我将 worker 数量增加到 1000,我就会开始遇到很多 Redis 超时。 我几乎可以肯定限制在 redis 中,因为我什至无法再从 redis-cli 连接。 resque或redis是否有任何限制?或者它可能是一些文件系统限制?

有谁知道这个配置在哪里,所以我可以更改它?

谢谢。

最佳答案

您的服务器可能达到了资源限制。

在 Linux 上,检查:

ulimit -a
sysctl net.ipv4.ip_local_port_range
sysctl net.ipv4.tcp_fin_timeout
sysctl net.core.somaxconn
sysctl net.ipv4.tcp_tw_recycle
sysctl net.ipv4.tcp_tw_reuse
sysctl fs.file-max
sysctl net.ipv4.tcp_window_scaling
sysctl kernel.pid_max
sysctl net.ipv4.tcp_orphan_retries
sysctl net.ipv4.tcp_max_orphans

在 FreeBSD 上,检查:

sysctl kern.ipc.nmbclusters
sysctl kern.ipc.maxsockets
sysctl kern.maxfiles
sysctl kern.maxfilesperproc
sysctl net.inet.tcp.msl
sysctl net.inet.ip.portrange.first
sysctl net.inet.ip.portrange.last

获取有关这些 sysctl 配置的更多信息并根据需要增加。

关于ruby - 800 名 worker 后重新请求超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12965772/

相关文章:

ruby - 如何在 Sinatra 中创建类似 Rails 的前置过滤器?

ruby - 在 Visual Studio Code 中,如何让 # 自动替换为 Ruby 字符串中的 #{}

redis - Redis 中的事务 - 另一个数据库中的读取操作

node.js - 运行剑圣时出错

ruby-on-rails - 在 RSpec 中编写与 Resque 相关的规范的最佳方式是什么?

ruby - 在开发环境中使用 rails server 启动 Sidekiq

ruby - 按数字(从大到大)然后按字母(字母顺序)对对象集合进行排序

从 dump.rdb 加载后删除所有键的 Redis 服务器

mysql - Jruby/Resque : Network connections from resque job begin failing repeatedly

redis - 如果不使用 Rails,如何在 Resque 中设置 Redis url?