Knative 与 FaaS 性能运维

共 44 题
#

1. Knative Serving 的缩容到零(scale-to-zero)与冷启动原理是什么?

A 缩容到零后无额外延迟
B 缩容到零省资源但首个请求需冷启动,运维需权衡最小副本与并发 ✓ 正确答案
C 冷启动只与镜像大小有关
D 缩容到零后请求无法唤醒
#

2. Knative 的 Activator 在缩容到零时如何拦截首个请求并唤醒实例?

A Activator 只在有流量时工作
B 实例无需就绪即可转交
C Activator 不参与冷启动
D Activator 拦截冷启动请求、缓冲并触发扩容,实例就绪后转交流量 ✓ 正确答案
#

3. Knative 的流量分层(Queue Proxy)如何处理并发与限流?

A Queue Proxy 只转发请求,不控并发
B Queue Proxy 限制进入容器的并发、超限限流并采集指标给 Autoscaler ✓ 正确答案
C 并发上限与扩缩容无关
D 排队无上限,可无限积压
#

4. OpenFaaS/函数计算 与 Knative 的运维模型差异?

A 两者运维模型完全相同
B OpenFaaS 也依赖 Eventing 原生事件
C Knative 更 K8s 原生、能力强而复杂,OpenFaaS 更轻量易上手,扩缩容与事件模型不同 ✓ 正确答案
D Knative 不依赖 Kubernetes
#

5. Serverless 容器的冷启动延迟由哪些环节构成,如何优化(镜像/快照/预热)?

A 冷启动只由镜像大小决定
B 就绪探测与冷启动无关
C 预热无助于降低冷启动
D 通过减镜像体积、层缓存/快照、预热实例多环节优化冷启动延迟 ✓ 正确答案
#

6. 事件驱动(Eventing)架构下,函数触发链的可观测与死信队列?

A 用事件 ID 做端到端追踪,失败事件进死信队列并告警、人工介入 ✓ 正确答案
B 事件失败无需处理
C DLQ 与事件丢失无关
D 重试可无限进行
#

7. 函数平台的多运行时(容器运行时/custom runtime/扩展运行时)隔离与安全边界如何设计

A 所有函数共享权限即可
B 无需限制容器权限
C 函数间默认互通
D 用命名空间/安全上下文/内核隔离/网络与资源隔离设计多层安全边界 ✓ 正确答案
#

8. Knative Eventing 的 Broker/Trigger 模型如何做事件路由与运维?

A Broker 直接把事件发给所有函数
B Broker 收事件,Trigger 按类型/源过滤并路由到目标函数 ✓ 正确答案
C Trigger 不做过滤
D 事件路由无需监控
#

9. Knative 的自动扩缩(KPA)与 HPA 的差异及运维选型?

A KPA 按并发支持缩容到零,HPA 按资源且保最小副本,选型看负载特征 ✓ 正确答案
B HPA 也支持缩容到零
C 两者扩缩机制完全相同
D KPA 面向 CPU 指标
#

10. Knative 缩容到零后的“唤醒风暴”(突发流量)如何平滑承接?

A 用预置并发、突发限流、快速扩容与队列背压平滑承接唤醒风暴 ✓ 正确答案
B 唤醒风暴无需处理,直接打爆即可
C 突发流量无需限流
D 队列可无限积压
#

11. Serverless 与常规 Deployment 混合部署时,节点资源争抢如何协调?

A 函数可随意占用所有资源
B 常规服务无需资源保护
C 用 cgroup 限制、QoS/优先级与调度协调,防止函数挤占关键服务 ✓ 正确答案
D 混部无需隔离
#

12. Serverless 函数如何挂载有状态依赖(数据库连接池)而不耗尽?

A 每个实例无限建连接即可
B 连接池与实例数无关
C 限制连接池大小与实例数联动、用连接代理/空闲回收与总量监控防止耗尽 ✓ 正确答案
D 连接无需回收
#

13. Serverless 场景下如何做容量压测而不触发无限扩容导致账单爆炸?

A 设最大实例上限、并发控制、费用预算熔断与环境隔离,防止无限扩容 ✓ 正确答案
B 压测无需限制扩容
C 账单无需监控
D 压测可无限加压
#

14. Serverless 容器的启动依赖拉取(init container)过长如何加速?

A init 拉取无法优化
B 用预热/镜像层缓存/并行/懒加载加速 init 依赖拉取,缩短冷启动 ✓ 正确答案
C init 与冷启动无关
D 依赖只能串行拉取
#

15. Serverless 按量计费的运维成本治理中闲置函数、配置过大与无限循环如何治理?

A 成本只与调用量有关
B 配置过大无成本影响
C 治理闲置函数、调优内存配置、设超时与递归熔断防无限循环,并做成本分摊预算 ✓ 正确答案
D 无限循环无需防护
#

16. 事件 Schema 变更如何在函数间做兼容与灰度?

A Schema 可随意变更,无需兼容
B 消费者无需声明版本
C 用向后兼容+Schema 版本化+灰度发布,保证事件演进不破坏消费者 ✓ 正确答案
D 新增字段可不加默认值
#

17. 事件源(Source)故障导致函数不被触发,如何发现与重试?

A 事件源故障无需监控
B 无需心跳探活
C 事件丢失无法补救
D 用产生量/触发量对账发现漏触发,监控源健康并用重试与补偿兜底 ✓ 正确答案
#

18. 事件风暴(源端突发)下函数自动扩容的熔断与背压机制?

A 事件风暴可无限扩容
B 背压无助于保护
C 用扩容上限、背压、熔断与死信降级保护下游,防止风暴打爆 ✓ 正确答案
D 熔断阈值无需设置
#

19. 事件驱动架构的端到端追踪(从事件产生到函数执行)如何串联?

A 事件与函数执行无法关联
B 只追踪函数即可
C 日志无需关联事件 ID
D 用事件 ID 与 trace context 传播,使事件产生到函数执行处于同一链路 ✓ 正确答案
#

20. 函数优雅停机(shutdown hook)与在途请求排空中发布与回收时如何避免请求中断

A 直接终止实例即可
B 在途请求无需排空
C 用 shutdown hook 停止接新、排空在途请求并设终止宽限期,滚动更新避免中断 ✓ 正确答案
D 就绪摘除与停机无关
#

21. 函数共享运行时(runtime)的隔离性与“邻座噪声”运维风险?

A 共享运行时函数互不影响
B 噪声无需监控
C 用 cgroup 资源限制、独立运行时/节点与并发隔离治理邻座噪声 ✓ 正确答案
D 高负载函数无需隔离
#

22. 函数内存配置过小导致的 OOM 与隐性降速如何被监控发现?

A 内存过小只导致 OOM 崩溃
B 用 OOM 事件+内存使用率+GC/交换+延迟指标发现显性崩溃与隐性降速,并调优 ✓ 正确答案
C 隐性降速无需监控
D 内存配置无需调优
#

23. 函数实例在闲置后突然被回收,导致请求毛刺,如何定位是调度还是资源?

A 毛刺只能归因于资源不足
B 回收不会导致毛刺
C 拆解调度/拉取/启动/就绪各环节,区分调度还是资源问题,按根因优化 ✓ 正确答案
D 无需区分冷启动与热调用
#

24. 函数平台的并发模型(每实例并发 vs 每请求实例)对资源的影响?

A 每实例并发省资源但共享,每请求实例隔离但开销大,按负载与隔离需求选型 ✓ 正确答案
B 每实例并发与每请求实例资源开销相同
C 每请求实例冷启动更少
D 并发模型与资源无关
#

25. 函数执行环境的地域就近调度对冷启动与延迟的影响?

A 就近调度降低网络延迟与冷启动,但要区域容量充足并权衡成本 ✓ 正确答案
B 就近调度不影响延迟
C 就近调度与数据无关
D 区域容量无需考虑
#

26. 函数死信队列(DLQ)堆积的告警与人工介入流程?

A DLQ 堆积无需告警
B 永久失败无需处理
C 设堆积阈值告警,人工区分可重试/永久失败并处理,修复根因防复发 ✓ 正确答案
D 堆积根因无需修复
#

27. 函数粒度的成本分摊(按团队/业务)如何实现?

A 成本无法按函数分摊
B 预算无需设置
C 成本无需看板
D 用团队/业务标签归集成本、生成看板并设预算,治理高成本函数 ✓ 正确答案
#

28. 函数触发权限(IAM/SA)的最小化与轮换运维?

A 函数权限越宽越好
B 按需授权最小权限、定期轮换并用短期凭证、审计权限,防泄露 ✓ 正确答案
C 长期密钥无需轮换
D 权限无需审计
#

29. 函数运行时逃逸风险(共享内核)如何缓解,是否需要 microVM 隔离?

A 用加固+seccomp/gVisor/microVM 隔离,按租户风险等级选择隔离级别 ✓ 正确答案
B 容器逃逸不影响其他函数
C microVM 无成本
D 无需内核隔离
#

30. 函数链(编排)的超时传播与部分失败补偿如何运维?

A 函数链超时无需控制
B 重试无需幂等
C 部分失败无需补偿
D 设链级超时、部分失败用补偿回滚、重试幂等并持久化状态,保证最终一致 ✓ 正确答案
#

31. 多事件源(HTTP/Kafka/对象存储)的统一可观测如何聚合?

A 各事件源独立可观测即可
B 用统一事件模型+OpenTelemetry 统一追踪+指标日志聚合,按事件源维度关联 ✓ 正确答案
C 事件源无法统一追踪
D 无需统一事件 ID
#

32. 如何使用 eBPF 观测函数冷启动各阶段耗时分布?

A eBPF 无法观测冷启动
B 只需观测总耗时
C 用 eBPF 跟踪调度/容器启动/拉取/初始化各阶段,定位冷启动瓶颈 ✓ 正确答案
D 冷启动阶段无需拆解
#

33. 如何使用预置并发/预热池消除关键函数的冷启动?

A 为关键函数预置热实例消除冷启动,按关键性权衡资源成本 ✓ 正确答案
B 预置并发无成本
C 所有函数都应预置
D 预热池与冷启动无关
#

34. 平台层弹性调度器(如 KEDA/自研调度)在函数伸缩中的角色,与 Knative KPA 的协同边界

A KEDA 与 KPA 职责相同
B KEDA 负责外部事件积压伸缩,KPA 负责内部请求并发伸缩,按依据分工协同 ✓ 正确答案
C KEDA 无法触发 Knative
D 两者无需协同
#

35. 生产函数冷启动 p99 过高,如何从镜像体积/启动脚本/快照多维度优化?

A 冷启动 p99 无法优化
B 从镜像体积、启动脚本、快照预热多维度优化,并拆解各阶段定位瓶颈 ✓ 正确答案
C 只优化镜像即可
D 快照无助于冷启动
#

36. Serverless 函数的供应链安全(依赖/镜像)与短时运行带来的扫描难题?

A 短时运行只能运行时扫描
B 无需签名镜像
C 依赖无需锁定
D 构建期扫描依赖/镜像、锁定版本、签名与 SBOM 追踪,把风险挡在发布前 ✓ 正确答案
#

37. Serverless 平台的配额(并发数/区域)限制如何预警?

A 配额超限无影响
B 超配无需处理
C 配额无需监控
D 监控配额使用率分级预警,超限前提前扩容或优化使用 ✓ 正确答案
#

38. 函数密钥注入(Secret)与短期凭证(STS)的运维实践?

A 密钥可直接写进代码
B 长期密钥无需替换
C 用 Secret 加密注入、STS 短期凭证、定期轮换与最小权限保护密钥 ✓ 正确答案
D 密钥无需加密
#

39. 函数执行超时与资源限制(CPU/内存)的运维默认值与调优?

A 超时越长越好
B 按业务类型设默认超时/资源,按实际负载调优,避免 OOM 或浪费 ✓ 正确答案
C 内存越小越好
D 资源无需调优
#

40. 函数日志分散且短命,如何聚合与关联排障?

A 函数日志无需聚合
B 用日志 agent 聚合到统一平台、结构化带关联 ID,按 ID 关联排障 ✓ 正确答案
C 实例销毁后日志丢失即可
D 日志无需结构化
#

41. 函数消费消息队列(Kafka)时的重复消费与幂等如何保证?

A 重复消费无害
B 消费无需幂等
C offset 提交不相关
D 用唯一键去重、幂等处理并合理管理 offset,保证重复消费无副作用 ✓ 正确答案
#

42. 函数版本(revision)管理与灰度流量(如 5% 新版本)如何运维?

A 用 revision 版本化+流量比例灰度+指标观察+回滚,实现安全发布 ✓ 正确答案
B 新版本直接全量发布
C 灰度无需监控
D 旧版本无需保留
#

43. 多租户函数平台的资源隔离与噪声邻居治理?

A 租户共享资源无需隔离
B 噪声邻居无需治理
C 用租户配额、资源限制、公平调度与噪声监控治理多租户隔离 ✓ 正确答案
D 配额无意义
#

44. 大规模事件突发(十万级消息)下的背压与降级策略中限流、丢弃策略与重试补偿如何权衡

A 按事件优先级权衡限流/丢弃/重试补偿,背压降速防打爆 ✓ 正确答案
B 所有事件都重试保不丢
C 非关键事件可放弃丢弃
D 无需背压