我有一项繁重的工作,需要用很多机器来完成。目前,resque有700名员工在运行,一切正常。但是,如果我把工人的数量增加到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/

10-15 08:01