【问题标题】:GOlang: MaxIdleConnsPerHost for many concurrent http connections?GOlang:MaxIdleConnsPerHost 用于许多并发 http 连接?
【发布时间】:2014-03-20 20:37:42
【问题描述】:

如果同一主机有 100 个并发连接,并且可能会及时重复,将 MaxIdleConnsPerHost 设置为 100 是否有意义?

为了避免连接上出现大量不可重用的 TIME_WAIT 状态,什么是合适的值?

【问题讨论】:

  • 你真的需要停止担心 TIME_WAIT ;) 这是一个红鲱鱼。另外 MaxIdleConnsPerHost 是客户端配置选项,而不是服务器。
  • 嗨@JimB :) 实际上这一次我谈论的是我向外部服务器发出的http 请求。我正在同时做很多事情,并且 TIME_WAITs 加起来。所以我想知道提高 MaxIdleConnsPerHost 值是否有意义。

标签: http concurrency go keep-alive netstat


【解决方案1】:

正如我所提到的,在这种情况下,您不应该担心 TIME_WAIT。在您真正需要之前,您通常也不会担心它,并且一些系统设置通常会在您的代码之外处理这个问题。

如果您的服务非常繁忙,那么无论如何都要让您的软件尽可能高效,从而为您提供最好的服务。如果您对同一主机进行多次重复调用,HTTP1.1 keepalive 连接是一种方法。也就是说,100 个空闲连接可能足以满足您的需要;或者它可能超出远程服务允许您保持打开状态的范围(除非您也可以控制)。

测量、测试和基准测试,然后确定您需要什么样的容量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-01
    • 2016-10-25
    • 1970-01-01
    • 2013-09-12
    • 2018-02-17
    • 2019-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多