在 Linux 中,“backlog” 可能指 网络连接 backlog、系统日志 backlog 或 任务队列 backlog,不同场景查看方式不同。下面按常见场景说明。
指 listen() 调用中等待 accept 的已完成连接队列。
ss -lnt
示例输出:
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:80 *:*
注意:不同内核版本含义略有差异。
cat /proc/sys/net/core/somaxconn
默认值通常是 128 或 4096。
cat /proc/sys/net/ipv4/tcp_max_syn_backlog
netstat -s | grep -i listen
或
ss -s
ssss -lntp
可以看到哪个进程监听端口及 backlog 设置。
journalctl --disk-usage
查看是否积压:
journalctl --verify
systemctl list-jobs
rabbitmqctl list_queues name messages
kafka-consumer-groups.sh --bootstrap-server ... --describe
iostat -x 1
关注 avgqu-sz(队列长度)。
常见信号:
accept() 慢netstat -s 中有 listen queue overflowss -lnt 中 Recv-Q 接近 Send-Q# 临时调整
sysctl -w net.core.somaxconn=4096
sysctl -w net.ipv4.tcp_max_syn_backlog=8192
# 永久生效
vim /etc/sysctl.conf
net.core.somaxconn = 4096
net.ipv4.tcp_max_syn_backlog = 8192
如果你能说明 具体场景(如:Nginx、Redis、Kafka、Java 服务、SYN 丢包),我可以给你更精确的查看和调优方案。