温馨提示×

linux backlog参数在哪改

小樊
40
2026-09-14 13:09:24
栏目: 智能运维

在 Linux 中,backlog 通常指网络 socket 的 listen backlog(全连接队列长度),常见修改位置如下:


一、应用层(最常用)

1️⃣ 代码中 listen() 的第二个参数

listen(sockfd, backlog);
  • 这是应用自己指定的 backlog
  • 实际生效值 = min(应用backlog, net.core.somaxconn)

二、系统内核参数(影响上限)

2️⃣ 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

3️⃣ net.ipv4.tcp_max_syn_backlog(半连接队列)

# 查看
cat /proc/sys/net/ipv4/tcp_max_syn_backlog

# 修改
sysctl -w net.ipv4.tcp_max_syn_backlog=8192

三、不同服务的 backlog 修改方式

✅ Nginx

listen 80 backlog=1024;

✅ Redis

tcp-backlog 1024

✅ Tomcat(Java)

  • 通过 server.xml
<Connector port="8080" acceptCount="1024" />

acceptCount 就是 backlog)

✅ MySQL

[mysqld]
back_log = 1024

四、查看当前队列状态(排查问题)

ss -lnt

示例:

LISTEN 0 128 0.0.0.0:80
  • 最后一个数字(128)就是当前 backlog

五、总结

改哪里 作用
应用 listen() 实际请求值
net.core.somaxconn 上限
tcp_max_syn_backlog SYN 队列
服务配置 覆盖 listen 参数

如果你说的是 具体某个服务 / 某个端口的 backlog,可以告诉我,我给你精确位置。

0