延迟/吞吐建模与故障定位

共 57 题
#

1. Bimodal latency(双峰延迟)的成因,GC pause、CPU steal、I/O readahead 的模式识别。

A CPU steal 可通过 /proc/stat 的 steal 字段或 vmstat 的 st 列观察 ✓ 正确答案
B 双峰延迟一定是网络问题导致
C GC pause 与延迟峰无关
D I/O readahead 只影响读操作且必然导致延迟
#

2. HdrHistogram(高动态范围直方图)相比固定桶直方图的内存优势与 P99.9 精度。

A 固定桶直方图内存更优
B HdrHistogram 无法计算 P99.9
C HdrHistogram 用相对精度换取恒定内存,动态范围大 ✓ 正确答案
D 两者精度完全相同
#

3. Warmup 阶段的延迟劣化(cold cache、cold JIT)与 warmup curve 的工程治理。

A warmup 只影响 JVM 类应用
B cold JIT 指解释执行或轻度优化路径较慢 ✓ 正确答案
C 预热无法改善 warmup
D warmup 曲线与 CPU 缓存无关
#

4. t-digest 算法在流式分位数估计的精度-内存权衡与 P99.9 误差边界。

A t-digest 的质心在尾部更密,从而提升尾部分位数精度 ✓ 正确答案
B t-digest 需要预先知道数据范围
C t-digest 不支持合并
D t-digest 内存随样本量线性增长
#

5. CPI(cycles per instruction)从 1.0 升至 2.5,按 CPU 流水线停顿分类占比识别 cache miss、branch miss、依赖等待。

A 可能由 cache miss、branch miss、依赖等待三类停顿导致 ✓ 正确答案
B 说明 CPU 主频降低了
C 与分支预测无关
D CPI 升高必然是内存不足
#

6. CPU governor(performance、schedutil、ondemand、powersave)的工程取舍。

A performance 省电
B schedutil 基于调度器负载平滑调频,多核环境更友好 ✓ 正确答案
C powersave 延迟最低
D ondemand 固定最高频率
#

7. Cache line(64 字节)对齐对 struct 的影响,false sharing 的 perf c2c 验证。

A 指线程真正共享同一数据
B 是缓存行内无关字段被不同线程修改导致的伪竞争 ✓ 正确答案
C 与 cache line 大小无关
D 无法通过 perf 检测
#

8. Hyper-Threading(SMT)下的资源竞争,port、cache line 的兄弟核争用如何发生。

A 兄弟线程共享执行端口与部分缓存,存在资源竞争 ✓ 正确答案
B 两个逻辑核完全独立
C SMT 总是提升单线程延迟
D SMT 与缓存无关
#

9. IPC 降低但 CPU 占用率未满,可能瓶颈在 memory-bound(DRAM stall)还是 front-end bound(i-cache miss)。

A 必然由 CPU 主频下降导致
B 需用 Top-Down 区分 front-end bound 与 back-end bound ✓ 正确答案
C 与 i-cache 无关
D memory-bound 时 frontend bound 占比一定高
#

10. L1/L2/LLC cache miss rate 的工程基线,典型业务的 hit rate 期望值与优化方向。

A 命中率与优化方向无关
B L1 miss 率通常超过 50%
C working set 超出 LLC 容量会导致 LLC miss 升高 ✓ 正确答案
D LLC miss 总是无害的
#

11. SIMD 指令(AVX2、AVX-512、NEON)的吞吐收益与频率下降的功耗墙。

A SIMD 总是提升实际吞吐
B AVX-512 在重负载下可能因功耗墙导致频率下降 ✓ 正确答案
C NEON 比 AVX-512 更宽
D 功耗墙与 SIMD 无关
#

12. perf stat 的关键计数器,cycles、instructions、cache-misses、branch-misses、page-faults 的协同解读。

A page-faults 与内存无关
B CPI = cycles / instructions ✓ 正确答案
C branch-misses 无法反映分支预测质量
D cache-misses 独立于 cache-references 解读
#

13. Linux page cache 的回收策略,LRU、2Q、ARC 的工程取舍。

A Linux 用 active/inactive 双链表近似 LRU 并区分访问频率 ✓ 正确答案
B 纯 LRU 能完美避免扫描污染
C ARC 只考虑最近访问
D 2Q 与 LRU 完全等价
#

14. OOM killer 的 oom_score 计算与进程选择,MySQL 容器被杀的常见原因。

A oom_score_adj 越大越不容易被杀
B MySQL 容器被 OOM 常因 buffer pool 超过容器内存上限 ✓ 正确答案
C OOM killer 总是随机选择进程
D 容器内不会发生 OOM
#

15. major page fault 与 minor page fault 的工程差异,磁盘 I/O vs 仅页表分配如何对比。

A minor page fault 开销与 major 相同
B major page fault 需要磁盘 I/O,开销大 ✓ 正确答案
C page fault 与内存映射无关
D major fault 只发生在首次启动
#

16. 吞吐未饱和但延迟升高,可能瓶颈在 working set 超出 cache、memory pressure、swap 还是 NUMA remote。

A 一定是 CPU 饱和
B 与 swap 无关
C 可能是 working set 超出 cache 或 NUMA remote 访问 ✓ 正确答案
D 无法通过工具定位
#

17. DNS 解析慢的工程定位,resolver 配置、TTL、DoH/DoT 的安全与性能。

A DoH/DoT 以加密与额外开销换取安全性 ✓ 正确答案
B TTL 越短越好,减少缓存
C resolver 配置不影响解析速度
D 解析慢只与网络有关
#

18. HTTP 慢请求拆解,DNS(5-50ms)→ TCP connect(10-100ms)→ TLS 握手(50-200ms)→ TTFB(50-500ms)→ content download 的耗时定位。

A TLS 握手通常比 DNS 解析更快
B 可用 curl -w 查看各阶段计时 ✓ 正确答案
C TTFB 与服务端无关
D content download 与 RTT 无关
#

19. QUIC(HTTP/3)的连接建立,0-RTT、1-RTT 与 TCP+TLS 1.3 的对比。

A TCP+TLS 1.3 最低 2-RTT,QUIC 恢复可用 0-RTT ✓ 正确答案
B QUIC 基于 TCP
C 0-RTT 无任何风险
D QUIC 无法连接迁移
#

20. TCP slow start 与 cwnd(congestion window)的初始拥塞,cwnd=10 vs IW10 的对比。

A IW 越大越安全
B slow start 使 cwnd 线性增长
C cwnd=10 指初始窗口为 10 个 MSS ✓ 正确答案
D slow start 与拥塞无关
#

21. mTLS 握手延迟,证书链大小(KB 级)、OCSP stapling、session resumption 的工程优化。

A OCSP stapling 可避免客户端在线查询 OCSP ✓ 正确答案
B 证书链越大握手越快
C session resumption 不减少 RTT
D 证书验证与延迟无关
#

22. tcpdump 与 Wireshark 的 HTTP/2、gRPC 解析,header compression、HPACK 索引如何处理。

A HPACK 动态表依赖连接上下文,中途抓包可能无法解码 ✓ 正确答案
B HTTP/2 头部不压缩
C gRPC 与 HTTP/2 无关
D Wireshark 无需 TLS 密钥即可看明文
#

23. Off-CPU 分析,阻塞在锁、I/O、调度上的时间占比。

A 它与 On-CPU 分析无区别
B 它分析线程不在 CPU 上执行的时间 ✓ 正确答案
C 只能看锁等待
D 无法用 bpftrace 实现
#

24. 火焰图(Flame Graph)的解读,宽度=CPU 时间、深度=调用栈。

A 顶部函数总是最耗时的
B y 轴宽度代表调用栈
C x 轴宽度代表 CPU 时间占比 ✓ 正确答案
D 火焰图只能看 on-CPU 时间,无法看 off-CPU
#

25. Bimodal latency 业务的告警策略,双窗口监控与告警分级。

A 单用平均值即可可靠告警
B 固定阈值比基线更优
C 告警分级会增加漏报
D 短窗口捕捉瞬时尖峰,长窗口评估趋势,可减少误报 ✓ 正确答案
#

26. P99 与平均值的差异成因,尾延迟放大(tail latency amplification)在多服务调用链的传递规律。

A 多跳调用链的 P99 会显著大于各跳 P99 简单相加 ✓ 正确答案
B 平均值能准确反映尾延迟
C 尾延迟放大与调用链深度无关
D 冗余请求必然放大尾延迟
#

27. 对数正态分布(log-normal)拟合响应时间的工程方法,μ、σ 参数估计与 P95/P99/P99.9 计算。

A μ 是响应时间的中位数
B 响应时间直接服从正态分布
C 对采样值取对数得到 μ、σ,P_p 用 exp(μ+σ·z_p) 计算 ✓ 正确答案
D 对数正态无法描述长尾
#

28. 平均响应时间不变但 P99 突然飙升,最可能的三种根因与各自的可观测信号。

A 通常由少数请求被慢路径或热点拖累导致 ✓ 正确答案
B 平均值能反映此类问题
C 一定是网络故障
D 与热键无关
#

29. 用 Little 定律(L = λW)计算最优并发数,若 p99 服务时间从 50ms 升至 200ms 而到达率不变,最大并发如何变化。

A 到达率不变则所需并发不变
B L=W/λ
C 服务时间与并发无关
D L=λW,服务时间变 4 倍则所需并发约变 4 倍 ✓ 正确答案
#

30. 给定平均稳定而 p99 恶化,依次追踪平均值、分位数、排队、Little 定律、服务时间与并发,找出首个失败点。

A 排队与 p99 无关
B 平均值稳定就说明系统健康
C 服务时间延长耗尽并发导致排队是常见的首个失败点 ✓ 正确答案
D 只需看分位数即可定位
#

31. 长尾延迟与 SLA 的差异,SLO 设定的 P99.9 vs 平均值陷阱。

A 平均值最能反映用户体验
B P99.9 对所有请求都设定上限
C 平均值会掩盖长尾,P99.9 只约束分位以内 ✓ 正确答案
D SLO 用平均值即可避免陷阱
#

32. Intel PT(Processor Trace)指令级追踪,相比 perf 的开销与精度差异。

A Intel PT 以采样方式记录
B Intel PT 提供指令级确定性轨迹但开销更高 ✓ 正确答案
C perf 比 Intel PT 精度更高
D 两者开销相同
#

33. perf record -g 的调用栈采样,频率(frequency)与采样周期的工程取舍。

A 采样频率越高精度越高但开销越大 ✓ 正确答案
B 采样周期与频率无关
C 必须用默认频率
D 采样不影响数据量
#

34. Dirty page 写回策略,dirty_ratio、dirty_background_ratio 与 writeback 的延迟。

A 脏页只在关机时写回
B dirty_background_ratio 会阻塞应用
C dirty_ratio 是硬上限,达到时应用同步阻塞写回 ✓ 正确答案
D 两个 ratio 含义相同
#

35. "已知未知"(Known-Unknowns)vs"未知未知"(Unknown-Unknowns)的可观测策略。

A 两者可观测策略相同
B 预设指标能覆盖所有未知
C 未知未知需靠高保真采样与可回溯资产应对 ✓ 正确答案
D 已知未知无法被监控
#

36. Continuous Profiling(持续剖析)的工程价值,Always-on vs Sampled 的取舍。

A 持续剖析只能实时看
B Always-on 无需存储
C Always-on 覆盖全但开销大,Sampled 开销低但可能漏掉短窗口热点 ✓ 正确答案
D 采样与持续剖析无关
#

37. 三种可观测支柱的工程价值,Logs(debug)、Metrics(趋势)、Traces(链路)的协同。

A Traces 是数值聚合
B 三支柱互相独立无需关联
C Logs 最适合做告警
D Metrics 用于趋势与告警,Traces 用于链路定位,Logs 用于细节 debug ✓ 正确答案
#

38. 指标 cardinality(基数)的爆炸,tag 过多导致的存储压力。

A cardinality 与存储无关
B tag 越多指标越高效
C request_id 适合作为指标 tag
D 高基数 tag 组合会导致时间序列爆炸与存储压力 ✓ 正确答案
#

39. "client-perceived latency"与"server-side latency"的差异,网络 RTT 的贡献拆分。

A 网络 RTT 与服务端延迟无关
B 两者永远相等
C 前者是客户端总感知,后者是服务端处理时间,二者差含网络 RTT ✓ 正确答案
D 无法拆分两者
#

40. CoDel(Controlled Delay)算法如何用 sojourn time 反推队列长度并触发 drop,与传统尾部丢弃的差异。

A 只看队列长度
B 与 tail drop 效果相同
C 用 sojourn time 作为拥塞代理指标,主动控制延迟 ✓ 正确答案
D 会加剧 buffer bloat
#

41. Throughput-latency curve 的"膝盖点"(knee point)识别,服务端容量规划的拐点定位。

A 膝盖点之后延迟急剧上升而吞吐几乎不增,容量规划应工作在膝盖点左侧 ✓ 正确答案
B 膝盖点后吞吐继续线性增长
C 膝盖点与延迟无关
D 容量规划应尽量越过膝盖点
#

42. tail latency 抖动(jitter)在音视频通话的影响与 FEC/ARQ 的工程补偿。

A 两者与丢包无关
B FEC 需要重传
C jitter buffer 加剧抖动
D FEC 以带宽换即时恢复,ARQ 以延迟换带宽 ✓ 正确答案
#

43. 用 M/M/1 队列模型计算利用率 ρ 与平均等待时间的关系,说明 ρ→1 时的相变(phase transition)。

A 利用率与排队无关
B 利用率越高延迟越低
C ρ=0.5 时等待时间无限
D 平均等待时间 W=1/(μ(1-ρ)),ρ→1 时趋于无穷 ✓ 正确答案
#

44. Branch misprediction 的工程影响,5-20 cycle 代价、5% 误预测率与代码模式(if-else、虚函数、switch)。

A 只有 5% 误预测率就无影响
B 误预测会冲刷流水线,代价约 5-20 个周期 ✓ 正确答案
C 虚函数跳转总是可预测的
D 分支预测与 IPC 无关
#

45. TLB miss(d-TLB、i-TLB)的工程成本与 hugepage 的收益边界。

A hugepage 用大页减少页表项,降低 TLB miss ✓ 正确答案
B TLB miss 只是查一次表,无成本
C d-TLB 与 i-TLB 无区别
D hugepage 总是提升所有场景
#

46. Top-Down Microarchitecture Analysis(TMAM)方法论,Retiring、Bad Speculation、Frontend Bound、Backend Bound 四象限。

A Bad Speculation 表示正常执行
B Retiring 高说明 CPU 高效,Backend Bound 高指向访存/执行瓶颈 ✓ 正确答案
C Frontend Bound 指后端执行慢
D 四象限互不相关
#

47. Swap 触发与内存压力的关系,swappiness=0、60、100 的不同策略。

A swappiness=60 表示完全不 swap
B swappiness=0 尽量不换出匿名页,优先回收 page cache ✓ 正确答案
C swappiness=100 表示禁用 swap
D swappiness 与内存回收无关
#

48. cgroup memory.high 与 memory.max 的差异,throttle vs kill 的边界。

A high 触发 throttle 降速,max 触发 OOM killer 杀进程 ✓ 正确答案
B 两者都杀进程
C high 是硬上限
D max 只是限速
#

49. RED(Rate、Errors、Duration)与 USE(Utilization、Saturation、Errors)方法论。

A 两者都只关注请求
B RED 面向请求(Rate/Errors/Duration),USE 面向资源(Utilization/Saturation/Errors) ✓ 正确答案
C USE 关注业务错误码
D RED 关注资源利用率
#

50. kswapd 的唤醒阈值(watermark)与直接回收(direct reclaim)的切换。

A direct reclaim 不阻塞
B 低于 low 唤醒 kswapd 后台回收,低于 min 触发阻塞的 direct reclaim ✓ 正确答案
C kswapd 是同步回收
D watermark 与回收无关
#

51. memory cgroup 的"硬限制"(memory.max)与 soft(memory.low)的策略。

A 两者语义相同
B low 是硬杀死
C max 是软限速
D max 是硬上限,low 是软保护(优先保留但非保证) ✓ 正确答案
#

52. Buffer bloat(缓冲区膨胀),长 fat pipe 与 fq_codel 的工程治理。

A buffer bloat 只影响吞吐不影响延迟
B 缓冲越大延迟越低
C 过量缓冲导致排队延迟增大,fq_codel 用公平队列+延迟感知丢弃治理 ✓ 正确答案
D fq_codel 会加剧排队
#

53. Connection pool 的命中与新连接,keep-alive timeout、TIME_WAIT 调优。

A 连接池命中后仍需完整握手
B keep-alive 太短会频繁新建连接,TIME_WAIT 过多会耗尽端口/连接 ✓ 正确答案
C TIME_WAIT 是有益无害的
D keep-alive 越长越好
#

54. MTU 1500 与 Jumbo Frame 9000,IP 分片与 PMTUD 的边界。

A MTU 与分片无关
B Jumbo Frame 在任何网络都直接生效
C IP 分片无害
D Jumbo Frame 需整条链路端到端支持,否则依赖 PMTUD 避免分片 ✓ 正确答案
#

55. Span 的成本,网络、序列化、存储、聚合的工程考量。

A 存储与 span 量无关
B span 无成本
C 全量采集 span 最划算
D span 成本含网络、序列化、存储、聚合,常用采样控制 ✓ 正确答案
#

56. 基线的建立,历史数据、灰度数据、对照组的工程选择。

A 基线只能来自历史数据
B 历史数据看趋势、灰度看变更影响、对照组隔离变量,可结合使用 ✓ 正确答案
C 固定阈值比动态基线更优
D 基线无法用于告警
#

57. 日志采样(sampling)的策略,全采 vs 错误全采 vs 概率采样。

A 错误全采保证排障,概率采样控制成本,可组合使用 ✓ 正确答案
B 全采成本最低
C 概率采样不会漏掉错误
D 采样与可观测性无关