Skip to main content
☘️ Septvean's Documents
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

sysctl -- net.core.default_qdisc

net.core.default_qdiscLinux 内核网络子系统中的一个 全局默认队列调度器(Queue Discipline, qdisc) 参数,用来决定:

当网络接口没有显式配置 qdisc 时,内核默认使用哪一种队列调度算法来发送数据包。


一句话专业定义

net.core.default_qdisc 决定了网卡发送队列的默认调度策略,直接影响网络延迟、吞吐量和公平性。


qdisc 是什么?(快速回顾)

  • qdisc 位于 内核 -> 网络栈 -> 网卡驱动之前

  • 作用:

    • 数据包排队
    • 拥塞控制
    • 公平调度
    • 限速 / 整形

简化路径:

应用
TCP/IP 协议栈
qdisc(队列调度)
网卡驱动
物理网卡

default_qdisc 的常见取值

1️⃣ pfifo_fast(传统默认)

net.core.default_qdisc = pfifo_fast

特点

  • 先进先出(FIFO)
  • 3 个优先级队列
  • 不感知延迟
  • 不做拥塞管理

优点

  • 简单
  • CPU 开销低

缺点

  • 容易 Bufferbloat(延迟暴涨)
  • 高并发下体验差

适合

  • 老内核
  • 低并发、简单服务器

2️⃣ fq(Fair Queueing)

net.core.default_qdisc = fq

特点

  • 按流公平调度
  • 每个 TCP 流独立队列
  • 自动 pacing(发送节奏控制)

优点

  • 明显降低延迟
  • 防止单一连接“霸占带宽”
  • 对 TCP 非常友好

缺点

  • CPU 消耗略高于 pfifo_fast

适合

  • 数据库
  • RPC
  • 微服务
  • 大多数服务器场景

📌 RHEL 8+ / AlmaLinux 8+ 推荐


3️⃣ fq_codel(公平 + 主动队列管理)

net.core.default_qdisc = fq_codel

特点

  • fq + CoDel(主动丢包控制)
  • 专门解决 Bufferbloat
  • 延迟非常稳定

优点

  • 极低延迟
  • 网络体验最好

缺点

  • CPU 消耗更高
  • 在超高吞吐场景可能影响极限性能

适合

  • 网关
  • LVS / NAT
  • 云主机出口
  • 对延迟极度敏感的场景

各场景推荐值(实战建议)

✅ 通用服务器(数据库 / Web / API)

net.core.default_qdisc = fq

✔ 平衡延迟与吞吐 ✔ 几乎没有副作用 ✔ 强烈推荐


✅ 网络网关 / LVS / NAT / 防火墙

net.core.default_qdisc = fq_codel

✔ 防止队列堆积 ✔ 延迟稳定 ✔ 抗突发流量能力强


❌ 不推荐再用(除非非常老的系统)

net.core.default_qdisc = pfifo_fast

与 TCP 拥塞控制的关系

default_qdisc 不等于 TCP 拥塞控制,但二者强相关:

组件 作用
qdisc 决定 怎么排队发包
TCP 拥塞控制(如 bbr/cubic) 决定 发多少包

推荐组合(现代 Linux)

net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

📌 这是当前最主流、最稳妥的组合


如何查看当前值

sysctl net.core.default_qdisc

或:

cat /proc/sys/net/core/default_qdisc

如何生效(注意)

  • 只对 新创建的网卡队列 生效

  • 已存在的接口可能需要:

    • 重启网络
    • 重启系统
    • 或手动 tc qdisc replace

放入 sysctl.conf 示例

# 网络队列调度:降低延迟,提升公平性
net.core.default_qdisc = fq

最后一行总结(给你这种“内核脑图型”用户)

net.core.default_qdisc 决定的是“内核如何在最后一公里把数据包有序、平滑地送进网卡”,而 fq 是现代 Linux 下性价比最高的默认答案。