在 Linux 中,“backlog” 通常指 监听套接字(listen socket)的等待队列长度,常见场景有:
listen())backlog 是在 服务端程序调用 listen(sockfd, backlog) 时设置的:
listen(sockfd, 128);
backlog 表示 已完成连接(ESTABLISHED)但未 accept 的最大排队数min(应用设置, /proc/sys/net/core/somaxconn)/proc/sys/net/core/somaxconn这是 backlog 的上限
查看:
cat /proc/sys/net/core/somaxconn
临时修改:
sysctl -w net.core.somaxconn=1024
永久修改(/etc/sysctl.conf):
net.core.somaxconn=1024
然后执行:
sysctl -p
/proc/sys/net/ipv4/tcp_max_syn_backlog控制 SYN_RECV 状态(半连接) 的队列长度
查看:
cat /proc/sys/net/ipv4/tcp_max_syn_backlog
修改:
sysctl -w net.ipv4.tcp_max_syn_backlog=8192
在 listen 指令中设置:
listen 80 backlog=1024;
tcp-backlog 511
back_log=1024
| 类型 | 参数 / 位置 |
|---|---|
| 应用 backlog | listen(fd, backlog) |
| 系统上限 | net.core.somaxconn |
| SYN 队列 | net.ipv4.tcp_max_syn_backlog |
| Web 服务 | Nginx / Redis / MySQL 配置 |
如果你能说明 具体场景(如 Nginx、Java、C、Docker、高并发连接),我可以给更精确的建议。