如何理解 net.core.somaxconn

2016-06-30 22:32:37 +08:00
 zzlyzq

兄弟们在日常的运维中是如何理解这个参数的来?

参数默认是 1024 ,代表 可以同时满足 1024 个并发连接,超过就丢掉了。 我这么说,都有点不确定。

一般在线上的 WEB 服务会增加这个,然后 nginx 里面通过 listen backlog 进行修改达到修改 nginx backlog 的目的。

那么问题来了?

  1. 这个参数增加会对系统带来啥优点?
  2. 带来啥缺点?
  3. 是否可以通过减少来保护系统?
3470 次点击
所在节点    问与答
3 条回复
fcicq
2016-06-30 22:52:02 +08:00
这个值应该是收到请求但是没有完成 accept() 的连接总数上限吧. 除非有大量短连接的话 1024 肯定也够了
pubby
2016-06-30 22:52:18 +08:00
TCP 连接后,上层应用需要 accept 这个连接才行,如果来不及 accept 那么等待被 accept 的连接数就会增大,大于>1024 的时候新连接就被丢弃了。

只有在很繁忙的服务器,或者程序某种设计问题迟迟不处理 accept 才会需要调这个。
xionghengheng
2020-02-15 17:37:42 +08:00
我刚刚好遇到一个问题,下游存储超时,逻辑服务 accept 数量瞬间暴涨

原因在于:链接 accept 之后,从存储取数据时延过大,导致上游服务超时,然后发起重连,进而导致 accept 数量瞬间暴涨,但是连接数和请求量其实是没有变化的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/289476

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX