全链路压测

共 19 题
#

1. 全链路压测的数据隔离,影子库(Shadow DB)和流量标记的实现方案?

A 流量标记贯穿链路透传,数据访问层据此将读写路由到影子库或影子表 ✓ 正确答案
B 压测流量直接写入真实业务表,测试结束后手工删除
C 影子表结构与真实表无需一致,只用于存储压测数据
D 流量标记只在入口生效,下游无需感知
#

2. 生产环境压测的安全模式设计,如何在不影响真实用户的前提下对生产集群施加压力?流量染色、读写分离、影子队列的具体实现?

A 压测流量与真实流量无需区分,直接压测生产集群
B 影子队列用于承载真实流量,集中压测
C 压测流量写影子队列、影子库并加限流与熔断,确保不影响真实用户 ✓ 正确答案
D 生产压测只压测数据库,不压测应用层
#

3. 压测数据构造方法论,如何基于业务模型(用户行为分布、接口调用比例)构造贴近真实的压测数据?数据铺底的量和分布如何确定?

A 压测数据可全部使用均匀构造数据,不影响结果
B 数据铺底量与分布应接近生产,因为影响索引命中与缓存命中 ✓ 正确答案
C 接口调用比例只需关注最高频接口,其余可忽略
D 数据铺底量越小越好,可加快压测速度
#

4. 全链路压测的核心难点,流量染色、数据隔离(影子表)、风险熔断的工程实现?

A 影子表路由通过数据访问层改写 SQL 实现,需覆盖所有读写路径 ✓ 正确答案
B 影子表结构与真实表可以不同,便于隔离
C 风险熔断在压测结束后才检查,无需实时监控
D 流量染色只需在入口标记,无需透传到异步与 MQ 场景
#

5. 流量录制与回放,生产真实流量的录制(TCPCopy/JVM-Sandbox)、脱敏、回放的完整链路?

A TCPCopy 通过 JVM 字节码增强在应用内录制请求
B 录制后的流量无需脱敏即可直接回放到测试环境
C JVM-Sandbox 通过字节码增强在应用内拦截录制,TCPCopy 在网络层复制流量 ✓ 正确答案
D 回放只关注吞吐量,无需比对响应与数据一致性
#

6. 影子表(Shadow Table)与影子库,压测流量写影子表与读影子表的隔离与数据校验?

A 影子库需在应用层改写 SQL 目标表名,无需独立数据库
B 影子表针对真实表创建同结构表,通过改写 SQL 路由写入,隔离轻量 ✓ 正确答案
C 压测流量只需写影子表,读仍走真实表,不影响结果
D 影子表结构与真实表可以不同,只要能存压测数据
#

7. 压测模型与真实流量的偏差,用户行为分布、接口调用比例如何校准,模型偏差如何度量

A 偏差越大,压测结果越接近真实容量
B 压测模型无需校准,偏差不影响容量预估
C 压测模型只关心总并发数,不关心接口比例
D 接口调用比例与用户行为分布需基于生产流量校准,偏差可用统计方法度量 ✓ 正确答案
#

8. 全链路压测的流量构造,基于真实流量录制 vs 合成流量的优劣对比?

A 真实流量录制可精确构造峰值与新功能场景,无需建模
B 真实流量录制保真但与真实环境耦合且需脱敏,合成流量可控但依赖建模质量 ✓ 正确答案
C 合成流量最能反映真实用户行为,且无需人工建模
D 合成流量无法复用,只能用于单次压测
#

9. 压测瓶颈定位方法论,从 TPS 拐点、RT 分位线、资源利用率三维交叉分析定位瓶颈层(网关/应用/中间件/数据库/网络)?

A 仅看 TPS 拐点即可确定瓶颈层,无需看资源利用率
B 网络瓶颈表现为 CPU 打满而 TPS 停滞
C RT 分位线上升与资源利用率无关,不能交叉定位
D TPS 拐点处 CPU 打满提示瓶颈在应用,RT 飙升但 CPU 空闲可能等待下游 ✓ 正确答案
#

10. 基于压测结果的容量规划,如何从单次压测数据推导系统容量上限、安全水位和扩容阈值?容量模型的校准方法?

A 安全水位等于容量上限,可直接用于生产
B 扩容阈值基于安全水位与资源利用率设定,达阈值时触发扩容 ✓ 正确答案
C 容量模型一次压测即可确定,无需定期校准
D 容量上限无需压测,直接按业务目标估算
#

11. 生产环境压测(Production Load Test)的风险控制,限流、白名单、秒级熔断的兜底机制?

A 白名单限制压测范围,秒级熔断在指标异常时自动停止压测止损 ✓ 正确答案
B 生产压测无需限流,压测压力越大越真实
C 熔断机制在压测结束后才执行,无需实时监控
D 压测时间应选在业务高峰,以便观察真实负载
#

12. 压测平台的"压测标头"透传,如何在网关、RPC、消息队列各层识别压测流量并隔离?

A 压测标头只在入口网关生效,RPC 与 MQ 无需感知
B 压测标头由业务代码手工透传,与中间件无关
C MQ 消费端读取消息头标头识别压测消息,路由到影子消费者或队列 ✓ 正确答案
D 跨线程异步场景无需传递标头,不影响识别
#

13. 压测的稳定性控制,预热、渐进加压、平台期维持与数据回放顺序对结果的影响

A 预热用于消除 JIT 与连接池冷启动影响,结果不计入统计 ✓ 正确答案
B 一次性直接加压到最高并发能更快得到真实性能
C 平台期维持越短越好,可加快压测
D 数据回放顺序不影响缓存命中与结果
#

14. 压测报告的容量模型输出,拐点识别、安全水位、扩容建议如何形成可决策的结论

A 安全水位基于容量上限乘以安全系数得出,并结合扩容阈值形成决策 ✓ 正确答案
B 扩容建议无需结合业务增长,只依赖单次压测
C 压测报告只需输出原始 TPS 数据,无需形成结论
D 拐点识别与容量规划无关,仅用于展示
#

15. 压测过程中的业务正确性验证,压测流量中如何断言下单、支付与库存扣减等业务成功率,而不只盯 TPS?

A 压测只需关注 TPS,业务正确性由生产验证
B 通过断言业务返回码、关联链路数据并比对影子库,验证下单支付库存等业务成功率 ✓ 正确答案
C 压测数据写入影子库,无需校验业务数据一致性
D 业务失败率与 TPS 无关,无需统计
#

16. 压测结果的可信度评估,压测环境与生产的配置、数据量与网络差异如何量化,结果如何折算为生产容量参考?

A 硬件配置、数据量、网络差异需量化并折算,结果作为带置信度的生产容量参考 ✓ 正确答案
B 压测结果可直接等同生产容量,无需折算
C 数据量差异不影响查询计划,无需折算
D 压测模型偏差不影响可信度评估
#

17. 压测自动化与 CI 集成,如何将性能回归测试纳入持续集成流水线?性能基线的版本管理和劣化告警?

A 性能基线一旦建立就永远不变,无需版本管理
B 环境噪声不影响性能基线对比的准确性
C 性能回归测试需人工手动触发,无法纳入 CI
D 每次发布前触发性能回归,对比基线,劣化超过阈值则告警并阻止 ✓ 正确答案
#

18. 压测结果与 APM 关联,如何把压测数据与链路追踪、性能剖析数据做交叉分析?

A 通过 traceId 把压测请求与链路追踪、性能剖析关联,定位到服务与方法 ✓ 正确答案
B 链路追踪只能看整体 TPS,无法定位耗时分布
C 压测数据与 APM 无关联,定位瓶颈只能靠压测自身
D 性能剖析用于替代压测,无需与压测数据关联
#

19. 压测后的数据清理与验证,影子表残留、消息积压等压测脏数据如何清理,并验证不影响真实业务?

A 压测结束后影子表数据会自动清理,无需处理
B 压测标记无需关闭,真实流量会被持续识别
C 压测脏数据只影响压测环境,不影响真实业务
D 需清理影子表残留、消息积压与缓存,并验证真实业务不受影响 ✓ 正确答案