生产环境突然出现访问量上升时,CPU 很容易成为最先被关注的指标。但一台主机的 CPU 只有六成使用率,仍可能因为内存紧张、磁盘响应变慢、网络连接耗尽或进程排队而无法继续承载请求。因此,主机资源监控不能只回答“CPU 高不高”,还要回答“请求究竟卡在哪里”。
更可靠的做法,是把处理器、内存、存储、网络和操作系统资源放在同一条时间线上观察。只有这些指标与业务延迟、错误率同时变化,才能判断是真正的容量不足,还是某个依赖环节出现了异常。
先区分CPU繁忙与请求排队
CPU 使用率适合判断处理器是否接近计算上限,但它有明显局限。用户态占用较高,通常说明应用正在执行计算;内核态占用升高,可能与网络包处理、系统调用或大量进程切换有关;等待占用明显上升,则要进一步检查磁盘或其他设备响应。
在主机资源监控中,可以同时观察负载、运行队列和上下文切换。负载持续高于可用处理器数量,并不等于一定需要扩容,因为不可中断的磁盘等待也会推高负载。相反,CPU 使用率不高但运行队列增长,可能意味着线程被锁、被阻塞,或请求集中等待外部服务。
一个实用的判断顺序
- 查看一分钟、五分钟和十五分钟负载,确认问题是瞬时尖峰还是持续积压。
- 对照用户态、内核态和等待占用,判断计算、系统调用或设备响应哪一类更突出。
- 观察进程级线程数、上下文切换和运行队列,找出是否只有少数进程异常。
- 把这些时间点与请求延迟、错误码和流量曲线对齐,避免脱离业务单独解读主机指标。
内存、磁盘和网络往往才是隐藏瓶颈
突发流量会扩大连接数、请求缓冲区和应用对象数量。内存总量看似还有余量时,系统仍可能受到可用内存下降、回收频繁或交换分区活动增加的影响。主机资源监控应关注可用内存、页面换入换出、回收时间,以及单个进程的常驻内存变化,而不是只看内存百分比。
磁盘方面,重点不只是容量。写日志、临时文件、数据库落盘和容器镜像读取,都可能让设备队列变长。可以使用 iostat 或系统自带的磁盘统计工具,查看设备利用率、平均等待时间和读写吞吐。若等待时间升高而吞吐没有同步增加,通常说明请求主要堵在队列或存储响应上。
网络层还要检查带宽、丢包、连接状态、监听队列和文件描述符。以使用 Nginx 的主机为例,流量增长可能先表现为连接数和等待连接增加,而不是 CPU 立即达到满载。若文件描述符接近上限,新连接可能被拒绝;若监听队列持续堆积,应用处理速度可能已经跟不上网络到达速度。

建立可执行的主机资源监控检查流程
- 确认范围:先记录异常开始和结束时间,并区分单台主机、同一机架主机还是整个服务集群。
- 固定采样:在异常期间按一秒到十秒的间隔采集 CPU、内存、磁盘、网络、连接数和进程状态;突发事件结束后,再保留一段恢复期数据。
- 交叉比对:将主机指标与入口流量、请求延迟、5xx 错误率和下游依赖响应时间放在同一时间轴上。
- 定位资源:使用 vmstat 观察内存与运行队列,使用 iostat 检查设备等待,使用 ss 查看连接状态,并检查进程打开文件数。
- 采取低风险措施:先限制异常来源或降低非核心任务并发,再考虑扩容、重启单个异常进程或调整连接上限;每次只改变一个主要变量。
- 复盘阈值:告警同时设置数值、持续时间和影响范围。例如,短暂的 CPU 尖峰可以记录而不立即升级,持续的高等待、连接拒绝或错误率上升则应进入人工处理。
指标阈值不能脱离业务基线
同一项主机资源监控指标,在不同应用上的含义并不相同。批处理服务器可以容忍较高的瞬时 CPU 使用率,但在线请求服务更关注延迟和排队。磁盘设备类型、文件系统、日志量、进程模型以及流量模式,也会改变正常范围。
| 观察对象 | 需要结合的指标 | 常见判断方向 |
|---|---|---|
| 处理器 | 用户态、内核态、等待、运行队列 | 区分计算不足、系统开销和设备阻塞 |
| 内存 | 可用内存、回收、交换活动、进程常驻内存 | 识别泄漏、缓存压力或突发对象增长 |
| 存储 | 队列、等待、吞吐、设备利用率 | 判断是容量不足还是响应延迟 |
| 网络 | 带宽、连接数、监听队列、丢包 | 定位入口拥塞、连接耗尽或链路异常 |
常见问题
CPU 不高但接口变慢,应该先查什么?
先查内存回收、磁盘等待、网络连接和进程运行队列,再对照下游服务延迟。低 CPU 不代表请求没有排队。
高负载是否一定需要增加CPU?
不一定。若高负载主要由磁盘等待引起,增加处理器通常不能解决问题,应先检查存储队列和阻塞进程。
突发流量时哪些指标适合优先告警?
建议优先关注请求延迟、错误率、可用内存、磁盘等待、连接拒绝和文件描述符使用情况,再将 CPU 作为原因判断指标。
如何避免告警过多?
为主机资源监控设置持续时间、分级阈值和业务影响条件,并在恢复后复盘误报与漏报。最终目标不是收集更多曲线,而是更快确认瓶颈。
生产环境的主机资源监控应覆盖从请求进入主机到进程完成处理的完整路径。CPU 是重要信号,却只是其中一环;只有把计算、内存、存储、网络和业务结果结合起来,突发流量下的判断才不会被单一百分比误导。


