在800名工人之后重新开始计时

时间:2012-10-19 00:34:17

标签: ruby redis resque

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

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

感谢。

2 个答案:

答案 0 :(得分:2)

您可能在服务器盒上达到资源限制。

在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配置的更多信息,并根据需要增加。

答案 1 :(得分:0)

每个工作人员都是分叉的,根据您机器的其他资源,您可能在运行700到1000名工作人员之间达到了限制。

我建议监控正在使用的内存量,并检查是否按照@Andrew Marshall上面的建议设置了maxclients