主要原因是因为新买的服务器,参数配置没有更改
1.解决方案,更改net.core.somaxconn的参数配置
2.更改uwsgi参数配置

net.core.somaxconn的作用
net.core.somaxconn 是Linux中的一个kernel参数,表示socket监听(listen)的backlog上限。什么是backlog呢?backlog就是socket的监听队列,当一个请求(request)尚未被处理或建立时,他会进入backlog。而socket server可以一次性处理backlog中的所有请求,处理后的请求不再位于监听队列中。当server处理请求较慢,以至于监听队列被填满后,新来的请求会被拒绝。
在Hadoop 1.0中,参数 ipc.server.listen.queue.size 控制了服务端socket的监听队列长度,即backlog长度,默认值是128。而Linux的参数 net.core.somaxconn 默认值同样为128。当服务端繁忙时,如NameNode或JobTracker,128是远远不够的。这样就需要增大backlog,例如我们的3000台集群就将 ipc.server.listen.queue.size 设成了32768,为了使得整个参数达到预期效果,同样需要将kernel参数 net.core.somaxconn 设成一个大于等于32768的值。
如何修改net.core.somaxconn
Linux中可以工具 syctl 来动态调整所有的kernel参数。所谓动态调整就是kernel参数值修改后即时生效。但是这个生效仅限于os层面,对于Hadoop来说,必须重启应用才能生效。 命令 # sysctl -a
会显示所有的kernel参数及值。
修改参数值的语法
# sysctl -w net.core.somaxconn=32768
以上命令将kernel参数net.core.somaxconn的值改成了32768。这样的改动虽然可以立即生效,但是重启机器后会恢复默认值。为了永久保留改动,需要用vi在 /etc/sysctl.conf 中增加一行
net.core.somaxconn= 4000
然后执行命令
# sysctl -p
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2022-06-27 etcd