我需要使用大量机器完成繁重的处理。目前,Resque有700名员工在运行,一切正常。但是,如果我将工作人员数量增加到1000,我会开始获得大量的redis超时。 我几乎可以肯定,限制是在redis中,因为我甚至无法再从redis-cli连接。 resque或redis有限制吗?或者它可能是某些文件系统限制?
有谁知道这个配置在哪里,所以我可以改变它?
感谢。
答案 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