您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Go客户端程序在TIME_WAIT状态下生成大量套接字

Go客户端程序在TIME_WAIT状态下生成大量套接字

认的http.Transport打开和关闭连接的速度过快。由于所有连接都连接到相同的host:port组合,因此您需要增加MaxIdleConnsPerHost以匹配的值num_coroutines。否则,运输工具将频繁关闭额外的连接,只是立即将它们重新打开。

您可以在认传输方式上进行全局设置:

http.DefaultTransport.(*http.Transport).MaxIdleConnsPerHost = numCoroutines

或者在创建自己的交通工具时

t := &http.Transport{
    Proxy: http.ProxyFromEnvironment,
    DialContext: (&net.Dialer{
        Timeout:   30 * time.Second,
        KeepAlive: 30 * time.Second,
    }).DialContext,
    MaxIdleConnsPerHost:   numCoroutines,
    MaxIdleConns:          100,
    IdleConnTimeout:       90 * time.Second,
    TLSHandshakeTimeout:   10 * time.Second,
    ExpectContinueTimeout: 1 * time.Second,
}
Go 2022/1/1 18:17:11 有341人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶