首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行多个Docker虚拟机的服务器将如何处理TCP限制?

运行多个Docker虚拟机的服务器将如何处理TCP限制?
EN

Stack Overflow用户
提问于 2013-11-04 03:44:39
回答 1查看 3.5K关注 0票数 3

在负载非常重的情况下,服务器似乎没有足够快地“回收”TCP连接。

通过在一台机器上创建一个节点服务器的多个实例和使用多台计算机,我正在研究如何使用Docker来处理每秒对API的更高数量的请求。

如果设置了以下sysctl设置,回收的速度似乎会更快,但仍然对存在多少套接字有严格的限制:

代码语言:javascript
复制
net.ipv4.ip_local_port_range='1024 65000'
net.ipv4.tcp_tw_reuse='1'
net.ipv4.tcp_fin_timeout='15

当运行多个对接器实例时,tcp连接的总上限是否仍然等于“父”机器可以处理的最大tcp连接的数量?

EN

回答 1

Stack Overflow用户

发布于 2013-11-04 14:24:01

是的,TCP连接的总上限将由Docker主机设置上限。

然而,有三个非常不同的限制:

  • 打开连接的总上限(不管源/目的IP地址如何),它与文件描述符的最大数量相关,并且可能非常高(即百万)
  • 给定本地IP地址的出站连接总量上限(每个本地IP地址限制在64K )
  • 网络过滤器跟踪的连接总帽

TCP端口回收处理处理第二个限制。如果在主机和容器中使用netstat -nt,您应该能够轻松地检查是否接近它。如果是这样的话,您使用的sysctl应该会有很大帮助。

如果你的集装箱是处理外部交通,它不应该受到这个限制,但是,你可能会击中第三个。您可以使用conntrack -S检查跟踪连接的数量,如果有必要,可以通过调整/proc/sys/net/ipv4/netfilter/ip_conntrack_max来增加最大连接数。

指出您所看到的哪些症状会有帮助,这会使您认为服务器没有足够快地循环连接吗?

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19761316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档