8. 服务器监控指标怎么看
性能测试不能只看 JMeter 报告,还必须看服务器监控指标。压测结果告诉你“系统表现如何”,服务器指标告诉你“为什么会这样”。如果响应时间升高、TPS 上不去、错误率上升,但你没有 CPU、内存、磁盘、网络、数据库、JVM、线程池等监控数据,就很难定位瓶颈。
面试中问服务器监控指标,重点是看你是否知道每个指标代表什么,以及它和性能现象之间的关系。
一、为什么要看监控
监控可以帮助判断:
- 应用服务器是否打满;
- 数据库是否瓶颈;
- 是否频繁 GC;
- 是否磁盘 IO 高;
- 是否网络带宽不足;
- 线程池是否耗尽;
- 连接池是否不足;
- 是否有异常日志;
- 是否压测机成为瓶颈。
没有监控的压测结论不完整。
二、CPU 怎么看
CPU 高可能表示:
- 计算逻辑重;
- 线程过多;
- 锁竞争;
- 频繁 GC;
- 序列化反序列化开销;
- 加解密或压缩开销;
- 死循环或代码问题。
如果 CPU 接近 90% 以上,同时响应时间升高,可能是应用 CPU 瓶颈。
如果 CPU 不高但响应慢,可能在等待数据库、网络、锁或外部服务。
三、Load 怎么看
Load 表示系统运行队列和不可中断任务压力。
如果 Load 明显高于 CPU 核数,说明系统压力较大。
但 Load 要结合 CPU、IO 一起看。Load 高不一定全是 CPU,可能是 IO 等待导致。
四、内存怎么看
内存关注:
- 使用率;
- 可用内存;
- swap;
- 内存持续增长;
- OOM;
- 缓存占用。
如果内存持续增长不释放,可能有内存泄漏。
如果发生 swap,系统性能会明显下降。
五、磁盘 IO 怎么看
磁盘 IO 高会导致请求变慢。
关注:
- 磁盘读写吞吐;
- IOPS;
- IO wait;
- 磁盘使用率;
- 日志写入量;
- 数据库磁盘压力。
数据库、日志系统、文件上传下载场景尤其要关注 IO。
六、网络 IO 怎么看
网络问题可能导致:
- 响应时间波动;
- 连接超时;
- 传输慢;
- 网关 502/504;
- 带宽打满。
文件下载、图片服务、大响应体接口要重点看网络带宽。
七、JVM 指标怎么看
Java 系统要关注 JVM:
- 堆内存使用;
- Young GC 次数和耗时;
- Full GC 次数和耗时;
- 线程数;
- 类加载;
- OOM;
- GC 暂停时间。
如果响应时间周期性抖动,可能和 GC 有关。
Full GC 频繁会严重影响性能。
八、线程池和连接池
应用常见瓶颈:
- Tomcat 线程池满;
- 业务线程池队列堆积;
- 数据库连接池打满;
- Redis 连接池不足;
- HTTP 客户端连接池不足。
表现为 CPU 不一定高,但请求排队、响应时间上升。
九、数据库和中间件监控
数据库关注:慢 SQL、连接数、锁等待、CPU、IO、主从延迟。
Redis 关注:QPS、命中率、连接数、慢命令、热 key、大 key。
MQ 关注:消息堆积、消费速度、失败重试、消费者状态。
这些都可能影响系统性能。
十、常用监控工具
常见工具:
- top;
- htop;
- vmstat;
- iostat;
- sar;
- free;
- netstat/ss;
- nmon;
- Prometheus;
- Grafana;
- SkyWalking;
- Pinpoint;
- Arthas。
面试中不需要都会,但要知道用途。
十一、面试回答模板
如果面试官问“服务器监控指标怎么看”,可以这样回答:
性能测试中我不会只看 JMeter 报告,还会同步看服务器监控。应用服务器主要看 CPU、Load、内存、磁盘 IO、网络 IO、线程数、线程池和连接池;Java 系统还要看 JVM 堆内存、Young GC、Full GC 和 GC 耗时;数据库看慢 SQL、连接数、锁等待、CPU 和 IO;Redis 看命中率、热 key、大 key和连接数;MQ 看消息积压和消费速度。如果响应时间升高但 CPU 不高,我会重点看数据库、连接池、线程池、网络或外部依赖;如果 CPU 打满,则考虑代码计算、锁竞争或 GC。
十二、常见追问
追问:CPU 不高但响应时间很慢可能是什么原因?
可能在等待数据库、缓存、MQ、外部接口、锁、连接池或网络。
追问:Full GC 频繁有什么影响?
会导致应用暂停,响应时间抖动甚至超时。
追问:压测机也要监控吗?
要。如果压测机 CPU、内存或网络打满,压测结果不可信。
十三、练习清单
- 用 top 看 CPU;
- 用 free 看内存;
- 用 iostat 看 IO;
- 看网络带宽;
- 看 JVM GC;
- 看线程池;
- 看连接池;
- 看数据库慢 SQL;
- 看 Redis 命中率;
- 准备监控指标回答。
服务器监控指标是性能分析的证据。没有监控,性能测试只能停留在结果描述,无法解释原因。
配套刷题:

