Skip to content

Linux 网络性能测验 ​

最后更新:2026 年 9 月 15 日

请先阅读 Linux 网络性能。 每题选择一个最佳答案,并说明结论的含义及其测量限制。

  1. 哪项说法正确描述了 Bootlin 的公开资料与本练习手册之间的关系?
    • A) 可下载的幻灯片保证提供免费的受支持硬件实验环境
    • B) 初学者 VM 必然能够复现每种板卡/驱动程序观测结果
    • C) 公开幻灯片/实验可用于学习;硬件练习则需要其文档指定的板卡/工具链,以及 C 语言/内核背景知识
    • D) 培训证书可以替代缺失的抓包记录
显示答案

答案:C

说明:公开阅读资料不等同于授课、硬件和注册资格。驱动实验需要底层知识和适当的设置。核心 Python 环回练习的前置要求较少,也无法证明物理 NIC 行为。若硬件证据无法取得,应明确标记,而不能用证书替代。

  1. 客户端解析完标头后有意等待 0.15 秒。其总事务时长随之增加。可以得出什么结论?
    • A) 网络 RTT 恰好增加了 150 毫秒
    • B) 客户端消费延迟会影响完成时间;路径延迟需要单独的证据
    • C) 一定有 qdisc 丢弃了数据包
    • D) 增大接收缓冲区可以消除这段有意设置的暂停
显示答案

答案:B

说明:配置的暂停会计入 read_ms 和 total_ms,而不是注入的网络延迟。调度和缓冲也会影响实际测量值。headers_ms 还包括连接/请求工作,并不代表纯 RTT。本实验用于检验一种可能的应用层解释,并不声称测得了某个特定时长。

  1. 应如何解读 ss 的结果?
    • A) LISTEN 状态下的 Recv-Q 始终表示尚未读取的应用负载字节
    • B) ESTABLISHED 状态下的 Send-Q 是已配置的发送缓冲区上限
    • C) ESTABLISHED 状态下的 Recv-Q 涉及尚未读取的已接收数据;socket 内存和 LISTEN backlog 是不同的量
    • D) skmem、通告接收窗口和 cwnd 在数值上必须相等
显示答案

答案:C

说明:不同 socket 状态下,这些列的含义不同。ESTABLISHED 状态的 Send-Q 涉及尚未确认的字节,包括尚未发送的字节;LISTEN 状态的列则涉及连接接收。内存核算包含开销,与流占用的字节数不同。将这些值与 cwnd 比较时,也要先确认它使用的分段单位和 MSS。

  1. 一条假设路径的吞吐量为 100 Mbit/s,RTT 为 40 ms。其 BDP 是多少?它能证明什么?
    • A) 4,000,000 字节,证明所有 socket 缓冲区都应设置为该值
    • B) 500,000 字节,这是用于推理的输入,并不能确定某次运行缓慢的原因
    • C) 500 字节,这是测得的环回容量
    • D) 2,500,000 字节,这是强制要求的 qdisc 队列长度
显示答案

答案:B

说明:将 RTT 换算为 0.040 秒,将位换算为字节:100,000,000 × 0.040 ÷ 8 = 500,000。这是基于假设的计算。吞吐量取决于有效窗口、应用数据供应、拥塞和其他限制;单靠这个计算既无法诊断瓶颈,也不能作为全局调优的依据。

  1. 主机抓包显示一个较大的 TCP 单元,并显示似乎存在出站校验和错误。首先应做什么?
    • A) 禁用所有 NIC 卸载功能,并在不限制负载的情况下重试
    • B) 断定物理网络传输了损坏的超大帧
    • C) 记录抓包位置、方向、卸载上下文,以及截断/抓包计数器
    • D) 删除抓包文件,因为其中不可能包含有用证据
显示答案

答案:C

说明:GSO/TSO/GRO 和校验和卸载可能会使主机观察到的结果不同于物理传输情况。这也不能证明网络健康。应先确认观测点,必要时再查找相应的端点/线路证据。本练习手册不会更改 NIC 卸载设置来统一观测结果。

  1. 以下哪组说法准确?
    • A) NAPI 保证每个应用都能达到延迟目标
    • B) RSS 始终会将一条 TCP 流分散到所有 CPU
    • C) RSS 负责将接收流量分配到硬件队列,RPS 负责在软件中将处理分配到 CPU,NAPI 负责处理驱动程序事件的轮询
    • D) 环回可直接测量物理 NIC 的 RSS 间接表
显示答案

答案:C

说明:这些机制彼此相关,但作用位置不同。一条流可能通过哈希分配到一个 RSS 队列;软件处理时的 CPU 分布也可能不同。NAPI 的处理预算和上下文不能保证应用完成时间。环回流量不会经过物理 NIC 接收队列。

  1. tcpdump 报告了抓包丢失,ss 样本显示有重传。可以得出什么结论?
    • A) 每次重传都是由 tcpdump 丢包造成的
    • B) 已证明丢包发生在 qdisc
    • C) 观测器丢失和 TCP 重传是不同的信号,需要按时间/流进行关联并取得更多证据
    • D) 远端端点一定耗尽了接收缓冲区
显示答案

答案:C

说明:抓包丢失说明观测器的接收/处理能力有限,并不直接描述路径上的数据包传输情况。TCP 可能会因丢包、重排序或虚假超时行为而重传。任何一个计数器都不能单独识别故障组件。应比较同一时间区间和五元组;如果假设需要,还应从两个端点采集数据。

  1. bpftool net show 报告存在一个挂载项。若要声称它加速了你的流量,还需要哪些证据?
    • A) 无需其他证据;存在挂载项就代表已加速
    • B) 流量/hook 关联信息、明确的对比方案、实际性能测量以及观测器开销核算
    • C) 只有 BPF 程序名称
    • D) 另一台主机上的权限检查失败
显示答案

答案:B

说明:清单信息不能证明程序执行或性能表现。原生 XDP、通用 XDP 和 TC 的工作位置不同。有效对比需要明确的工作负载和测量约定;跟踪丢失/开销也很重要。缺少权限意味着未能观测到,而不是没有 BPF。核心练习手册不会加载任何程序。

  1. 某阶段的五个请求都成功了,但大多数定期 ss 样本为空。哪种报告方式可靠?
    • A) 声称已证明生产环境 p99,同时断言不存在 socket
    • B) 报告实际样本数、最小值/中位数/最大值,并说明短连接造成的采样遗漏
    • C) 将每个缺失的 socket 样本都视为零延迟
    • D) 仅根据最大的回显消息体计算 NIC 的最大吞吐量
显示答案

答案:B

说明:短连接可能在观测间隔之间完成。五个事务样本只能支持规模很小的描述性报告,无法形成可信的尾延迟服务目标。缺失数据不等于零。负载除以事务时长得出的是操作级 goodput,其中包含应用和连接工作,并非 NIC 线路速率。

  1. 哪项恢复计划符合本练习手册的要求?
  • A) 替换主机根 qdisc,然后删除它并假定原有层级会自动恢复
  • B) 清空所有路由并终止所有 Python 进程
  • C) 只停止自己启动的环回进程,并确认监听器已移除;在单独明确所有权、初始状态和精确恢复方案之前,netem 仍只停留在设计阶段
  • D) 缺少观测结果时禁用共享安全控制
显示答案

答案:C

说明:核心运行不会更改任何全局网络配置。恢复操作仅限于其自身进程和文件;TIME_WAIT 正常情况下可能继续存在。删除 qdisc 不会重建任意的先前配置。未来进行 netem 实验时,需要单独的命名空间/VM 边界,并准确恢复配置,或仅清理记录过的资源。

返回练习手册完成标准或专家课程地图。

向文档提问

按 Enter 发送,按 Shift+Enter 换行。