当我在非常大规模(2048 台机器)上测试自制的分布式键值存储时遇到此错误,它在 1024 台机器上运行良好。通信模式是 n:n,这意味着每台机器都会向其他机器发送大量请求。我使用 C TCP socket 来实现它, SO_REUSEADDR 来回收那些套接字。谁能给我一些关于可能导致此错误的可能性的提示?代码很复杂,很难在不丢失必要逻辑的情况下简化并在此处发布。所以我只想知道开始调试的所有可能原因。
顺便说一句,我将设置更改为: echo 8000 > /proc/sys/kernel/threads-max
echo 8000 > /proc/sys/net/core/somaxconn #监听队列的限制,默认为128
回声 8000 > /proc/sys/net/core/netdev_max_backlog
回声 10 > /proc/sys/net/ipv4/tcp_fin_timeout
回声“10000 65000”> /proc/sys/net/ipv4/ip_local_port_range
我这样做只是为了启用最大连接数。
谢谢,-托尼