在 Debian 里说“backlog 优化”,通常有几个常见场景,我分别讲一下,你看看你指的是哪一个:
如果你是做Web 服务、数据库、高并发服务,那通常是:
# 查看
cat /proc/sys/net/core/somaxconn
cat /proc/sys/net/ipv4/tcp_max_syn_backlog
# 修改(临时)
sysctl -w net.core.somaxconn=65535
sysctl -w net.ipv4.tcp_max_syn_backlog=65535
# 永久
vi /etc/sysctl.conf
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
sysctl -p
比如 Nginx / Redis / 自定义服务:
listen 80 backlog=65535;tcp-backlog 65535listen(fd, 65535)注意:应用 backlog 不能超过 somaxconn
如果你是说大量服务启动慢、systemd 卡住:
systemctl show -p TasksMax <service>
# 修改
systemctl edit <service>
[Service]
TasksMax=infinity
或全局:
/etc/systemd/system.conf
DefaultTasksMax=infinity
如果是 Debian 升级、补丁堆积:
apt update
apt upgrade
apt autoremove
apt clean
定期:
unattended-upgrades
高网络吞吐时:
net.core.netdev_max_backlog = 262144
net.core.netdev_budget = 600
你可以告诉我:
backlog full)我可以给你精确到参数的优化方案。