ifconfig 命令直接显示 txqueuelen 当前值,位于每块激活网卡输出行末尾,如 txqueuelen 1000 (ethernet);若网卡未启用(down),需加 -a 参数强制显示,该值表示内核传输队列最大缓存包数,非硬件环形缓冲区。

怎么用 ifconfig 查看 txqueuelen 当前值
ifconfig 是最直接看到 txqueuelen 的方式,它就写在每块网卡的输出行末尾。比如执行 ifconfig eth0,你会看到类似这样的字段:txqueuelen 1000 (Ethernet)。
注意:如果网卡没启用(DOWN 状态),ifconfig 默认不显示它;加 -a 参数才能强制列出所有接口,包括未激活的。
常见误区:
-
ifconfig显示的是驱动层传输队列长度,不是硬件环形缓冲区(Ring Buffer)——后者得用ethtool -g - 回环接口
lo的txqueuelen通常是0或1,改它没意义 - 某些新发行版默认不装
net-tools包,ifconfig会报 command not found,此时可用ip link show dev eth0查看,txqueuelen对应输出里的txqlen字段
ethtool -g 和 -G:查/设硬件 Ring Buffer 队列深度
ethtool -g eth0 显示的是网卡硬件层面的接收/发送环形缓冲区大小,和 txqueuelen 不是同一个东西,但两者协同影响丢包行为。
典型输出里有两组数值:“Pre-set maximums” 是硬件上限,“Current hardware settings” 是当前生效值。例如:
Ring parameters for eth0: Pre-set maximums: RX: 4096 RX Mini: 0 RX Jumbo: 0 TX: 4096 Current hardware settings: RX: 2048 RX Mini: 0 RX Jumbo: 0 TX: 2048
要调大,用 ethtool -G eth0 rx 4096 tx 4096。但注意:
- 该操作会短暂中断网络(接口重置),不能在生产流量高峰时做
- 不能超过 “Pre-set maximums” 给出的值,硬设超限会失败并报错
Operation not supported - 部分虚拟网卡(如 virtio_net)不支持
ethtool -G,会提示No data available
临时修改 txqueuelen:ifconfig vs ip link
改 txqueuelen 最常用的是 ifconfig eth0 txqueuelen 5000,但它依赖 net-tools,且在较新内核(尤其是启用了 CONFIG_MODULE_SIG 或某些安全模块)上可能被禁用。
更通用、推荐的方式是用 ip 命令:
- 查看:
ip link show dev eth0 | grep txqlen - 修改:
ip link set dev eth0 txqlen 5000 - 这个改动同样只在运行时有效,重启或
systemctl restart networking后失效
为什么有时改了没反应?
- 网卡处于 DOWN 状态:必须先
ip link set eth0 up才能设置txqlen - 某些云厂商镜像(如 AWS AL2、Tencent Linux)对
txqueuelen有硬限制,设太高会被内核自动 clamp 到 10000 或更低 - 容器环境里,宿主机改了不影响容器内部 netns 的接口队列长度
永久生效与调优边界:别只盯一个参数
txqueuelen 设太大,容易掩盖真实瓶颈。比如你把 txqueuelen 从 1000 拉到 10000,丢包少了,但延迟毛刺变多,因为数据包在队列里排队时间不可控了。
真正要配齐的是这一组联动参数:
-
net.core.netdev_max_backlog:软中断收包队列上限,建议 ≥txqueuelen,否则驱动队列没满,内核队列先溢出丢包 -
net.core.somaxconn和net.ipv4.tcp_max_syn_backlog:如果丢包集中在建连阶段(SYN flood 或连接激增),光调txqueuelen没用 -
netdev_budget(内核启动参数):控制一次软中断最多处理多少包,影响 CPU 负载与延迟平衡
香港、新加坡等高 RTT 场景下,txqueuelen 值往往需要按 BDP(Bandwidth × RTT)估算,但最终必须结合 ss -i 看实际 socket 发送队列堆积、/proc/net/dev 看 tx_dropped 计数变化来验证——参数调得再“理论正确”,没监控佐证就是拍脑袋。











