全部学科
Python全栈
python
NodeJS全栈
nodejs

线上性能监控与压测优化专项测试

20 题 45 分钟 难度:★★★

考察知识点

  • Actuator监控端点配置
  • JVM性能调优参数
  • 压测方法论与工具使用
  • 性能瓶颈定位与优化策略
💡 参考答案在文末
判断题
1

在Micrometer中,MeterRegistry是指标注册中心,负责创建和管理各种Meter(Counter、Gauge、Timer等),每个Spring Boot应用通常只需要一个MeterRegistry实例。

A

B

2

在进行压力测试时,单次测试结果就可以代表系统的真实性能水平,无需进行多次重复测试取平均值。

A

B

3

在压力测试中,TPS(Transactions Per Second)和QPS(Queries Per Second)都是衡量系统吞吐量的重要指标。对于单个HTTP接口而言,TPS等于QPS。

A

B

4

Spring Boot Actuator的metrics端点采用拉取式(Pull)模式获取指标数据,这种模式相比于推送式(Push)模式,更适合云原生环境下的服务发现和动态伸缩场景。

A

B

单选题
5

在压测过程中发现部分请求返回异常,通过日志发现线程池抛出RejectedExecutionException。分析线程池配置后发现:核心线程数=10,最大线程数=20,队列容量=100,任务处理耗时=500ms。请问在高并发场景下,如何优化线程池配置以避免拒绝异常?

A

增大队列容量到1000,让更多任务排队等待

B

将核心线程数调整为最大线程数,即core=max,避免队列等待

C

使用CallerRunsPolicy拒绝策略,让提交任务的线程执行任务

D

以上方案都不合理,应该根据系统资源重新设计整体架构

6

在Spring Boot应用压测过程中发现CPU使用率持续达到90%以上,但系统吞吐量没有相应提升,这种现象最可能说明什么问题?

A

应用存在频繁的CPU密集型计算,如复杂算法或死循环

B

CPU线程调度开销过大,应用线程过多导致频繁上下文切换

C

系统IO等待过高,CPU处于等待状态而非真正计算

D

JVM垃圾回收频繁,GC线程占用大量CPU资源

7

在Spring Boot应用压测中,发现数据库查询接口的响应时间P99值远高于平均值,通过分析发现存在慢SQL导致请求延迟。以下哪种方法可以最快速定位具体的慢SQL?

A

在Spring Boot中配置logging.level.org.springframework.jdbc=DEBUG查看SQL执行日志

B

开启数据库慢查询日志,设置long_query_time阈值记录慢SQL

C

使用Actuator的/actuator/metrics端点查看jdbc相关指标

D

在代码中使用JdbcTemplate的query方法手动打印SQL执行时间

8

以下哪种压测工具最适合用于对Spring Boot应用进行HTTP接口层面的压力测试,能够模拟大量并发用户请求?

A

JUnit

B

JMeter

C

Mockito

D

SonarQube

9

在JMeter中进行压力测试时,如果需要模拟1000个并发用户在10秒内逐渐启动并发起请求,应该配置哪种线程组?具体参数如何设置?

A

普通线程组:线程数=1000,Ramp-Up Period=10

B

普通线程组:线程数=1000,Ramp-Up Period=1,循环次数=10

C

Stepping Thread Group:初始线程=100,增量=100,间隔=1秒

D

Ultimate Thread Group:起始线程=1000,延迟=10秒

10

使用wrk工具对Spring Boot接口进行压测时,以下哪个命令可以模拟12个线程、400个连接、持续30秒的压力测试?

A

wrk -t12 -c400 -d30s http://localhost:8080/api/test

B

wrk --threads=12 --connections=400 --duration=30 http://localhost:8080/api/test

C

wrk -t 12 -c 400 -d 30 http://localhost:8080/api/test

D

wrk -T12 -C400 -D30s http://localhost:8080/api/test

11

在Spring Boot应用压测过程中,发现系统响应时间出现周期性抖动,每隔几分钟会有大量请求延迟飙升到数秒。通过监控发现老年代使用率快速上升并触发Full GC。以下哪种优化方案可以最有效地缓解这个问题?

A

增加年轻代大小,减少对象晋升到老年代的速度

B

将垃圾收集器从CMS改为G1GC,降低Full GC停顿时间

C

减少堆内存大小,让GC更频繁但停顿更短

D

使用-XX:+DisableExplicitGC禁用显式GC调用

12

在Spring Boot Actuator中,以下哪个端点用于查看应用的核心指标信息,如JVM内存、CPU使用率等?

A

/actuator/health

B

/actuator/metrics

C

/actuator/info

D

/actuator/env

13

在Micrometer指标体系中,用于统计HTTP请求响应时间分布的指标类型是什么?该类型指标会自动计算哪些统计数据?

A

Counter,统计请求总数

B

Gauge,统计当前值

C

Timer,统计调用次数、总耗时、最大耗时和百分位分布

D

DistributionSummary,统计请求大小分布

14

在Spring Boot应用中集成Prometheus监控时,需要添加哪个依赖并配置什么内容才能正确暴露Prometheus格式的指标?

A

添加micrometer-core依赖,配置management.endpoints.web.exposure.include=prometheus

B

添加micrometer-registry-prometheus依赖,配置management.endpoints.web.exposure.include=prometheus

C

添加spring-boot-starter-actuator依赖,配置management.metrics.export.prometheus.enabled=true

D

添加prometheus-client依赖,配置management.endpoint.prometheus.enabled=true

多选题
15

在Micrometer指标体系中,合理使用标签(Tags)可以实现多维度监控分析。以下哪些是标签设计的最佳实践?

A

为每个指标添加有意义的业务维度标签,如接口路径、HTTP方法、状态码

B

使用高基数(cardinality)标签值,如用户ID、请求ID等唯一标识

C

限制标签值的可选范围,避免标签组合爆炸

D

使用统一的标签命名规范,如小写字母加下划线

E

避免在标签中包含敏感信息,如密码、token

F

为所有指标添加应用名称、实例IP等公共标签

16

在Spring Boot应用的性能测试中,以下关于压测工具选择的描述哪些是正确的?

A

JMeter适合复杂的业务场景测试,支持脚本编程和多种协议

B

wrk适合快速验证接口性能,单机支持高并发HTTP测试

C

Gatling基于Scala,适合编写复杂的压测脚本,性能优异

D

ab(Apache Bench)功能强大,适合长期运行的压测场景

E

Locust基于Python,适合分布式压测和可编程场景

F

所有压测工具都支持生成HTML格式的测试报告

17

在对Spring Boot应用进行压力测试前,以下哪些准备工作是必要的?

A

确保测试环境与生产环境配置一致或相近

B

准备足够的测试数据,避免数据量不足导致缓存命中率异常

C

关闭所有日志输出,避免IO影响测试结果

D

配置监控工具收集压测期间的系统指标

E

预热应用,让JIT编译器完成热点代码优化

F

确保网络环境稳定,避免网络延迟干扰测试

18

在构建Spring Boot应用的监控指标体系时,以下哪些指标对于评估系统健康状态和性能瓶颈至关重要?

A

JVM堆内存使用量和GC频率

B

CPU使用率和系统负载

C

数据库连接池活跃连接数和等待队列长度

D

HTTP请求响应时间百分位值(P95、P99)

E

应用启动时间戳

F

线程池活跃线程数和队列任务数

19

在Spring Boot应用性能瓶颈分析中,以下哪些是需要重点关注的瓶颈点?

A

JVM内存分配不合理导致频繁GC停顿

B

数据库连接池耗尽导致请求等待或超时

C

HTTP连接池配置不当导致连接复用效率低

D

代码中存在N+1查询问题导致数据库压力过大

E

日志框架使用异步日志导致性能下降

F

线程池配置不当导致任务堆积或拒绝

20

在Spring Boot应用性能问题排查中,以下哪些APM(Application Performance Monitoring)工具可以提供链路追踪和性能分析功能?

A

SkyWalking - 国产开源APM,支持Java应用链路追踪

B

Zipkin - Twitter开源分布式追踪系统

C

Prometheus - 指标监控和告警系统

D

Jaeger - Uber开源分布式追踪系统

E

ELK Stack - 日志收集和分析平台

F

Pinpoint - 韩国开源APM,可视化服务拓扑

参考答案
1.正确 2.错误 3.正确 4.正确 5.B 6.B 7.B 8.B 9.A 10.A 11.B 12.B 13.C 14.B 15.A; C; D; E; F 16.A; B; C; E 17.A; B; D; E; F 18.A; B; C; D; F 19.A; B; C; D; F 20.A; B; D; F
想在手机上练习这套试卷?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一套试卷 核心配置文件使用专项测试
下一套试卷 → 自动配置原理专项测试
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码