在 Linux 中,backlog 通常指网络 socket 的 listen backlog(全连接队列长度),常见修改位置如下:
listen() 的第二个参数listen(sockfd, backlog);
min(应用backlog, net.core.somaxconn)net.core.somaxconn(全连接队列上限)# 查看
cat /proc/sys/net/core/somaxconn
# 临时修改
sysctl -w net.core.somaxconn=1024
# 永久修改
vim /etc/sysctl.conf
net.core.somaxconn = 1024
sysctl -p
net.ipv4.tcp_max_syn_backlog(半连接队列)# 查看
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
server.xml:<Connector port="8080" acceptCount="1024" />
(acceptCount 就是 backlog)
[mysqld]
back_log = 1024
ss -lnt
示例:
LISTEN 0 128 0.0.0.0:80
| 改哪里 | 作用 |
|---|---|
应用 listen() |
实际请求值 |
net.core.somaxconn |
上限 |
tcp_max_syn_backlog |
SYN 队列 |
| 服务配置 | 覆盖 listen 参数 |
如果你说的是 具体某个服务 / 某个端口的 backlog,可以告诉我,我给你精确位置。