Nginx、uvicorn、gunicorn 的 Socket Listen 队列大小是多少?

nginx、uvicorn、gunicorn 的 socket listen 队列大小是多少?

nginx、uvicorn、gunicorn 的 socket listen 队列大小

问题:

nginx、uvicorn、gunicorn 等 http 服务器的 socket 监听队列有多大?

回答:

  • uvicorn: 默认 2048
  • gunicorn: 默认 2048
  • nginx: 默认 511

深入探讨 nginx

nginx 的 listen 队列实际上称为 backlog,它是指内核中维护的一个队列,用于存放未处理的连接请求。在 linux 系统中,backlog 的默认值受限于 net.core.somaxconn 系统参数,一般为 128。

要查看 net.core.somaxconn 的值,使用命令:

sysctl net.core.somaxconn

要修改此参数,使用命令:

sudo sysctl -w net.core.somaxconn=<new_value>

建议谨慎修改此参数,因为它可能会影响其他应用程序的性能。要永久修改,请将其添加到配置文件(例如 /etc/sysctl.conf)中。

ubuntu 22.04 中,net.core.somaxconn 默认值已增加到 4096。

以上就是Nginx、uvicorn、gunicorn 的 Socket Listen 队列大小是多少?的详细内容,更多请关注硕下网其它相关文章!