在 Linux 中,backlog 通常指 listen() 的等待连接队列长度,常见于网络编程和服务配置。不同场景设置位置不同,下面分情况说明。
backlog 是在 调用 listen() 时指定的
C 示例
listen(sockfd, backlog);
Python 示例
server.listen(backlog)
注意:
实际生效的 backlog =min(应用设置的backlog, /proc/sys/net/core/somaxconn)
cat /proc/sys/net/core/somaxconn
临时修改
sysctl -w net.core.somaxconn=1024
永久修改
# /etc/sysctl.conf
net.core.somaxconn = 1024
然后执行:
sysctl -p
cat /proc/sys/net/ipv4/tcp_max_syn_backlog
修改
sysctl -w net.ipv4.tcp_max_syn_backlog=8192
listen 80 backlog=1024;
tcp-backlog 1024
[mysqld]
back_log = 1024
[Socket]
ListenBacklog=128
ss -lnt
# 或
netstat -lnt
关注:
Recv-Q:当前积压连接数Send-Q:backlog 上限| 场景 | 设置位置 |
|---|---|
| 程序代码 | listen(fd, backlog) |
| 系统上限 | net.core.somaxconn |
| SYN 队列 | net.ipv4.tcp_max_syn_backlog |
| Nginx | listen ... backlog= |
| 服务配置 | 对应服务配置文件 |
如果你是指 某一个具体服务或语言 的 backlog,可以告诉我,我给你精确配置示例。