you are viewing a single comment's thread
view the rest of the comments
[–] 1 point 1 year ago (1 child)

The client object or the library?

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 1 year ago

    … Is this a trick question? The object, provided by the library (net/http which is about as default as they come) sets “DefaultMaxIdleConnsPerHost” to 2. This is significant because if you finish a connection and you’ve got more than 2 idles, it slams that connection close. If you have a lot of simultaneous fast lived requests to the same IP (say a load balanced IP), your go programs will exhaust the ephemeral port list quickly. It’s one of the most common “gotchas” I see where Go programs work great in dev and blow themselves apart in prod.

    https://dev.to/gkampitakis/http-connection-churn-in-go-34pl is a fairly decent write up.

  • source
  • parent