云服务器 CPU 占用高怎么办?进程、负载与 I/O 排查顺序
云服务器 CPU 突然升高,直接重启可能让网站短暂恢复,也可能丢失定位问题的重要线索。先确认访问是否受影响、异常持续多久,以及哪个进程在消耗资源,再决定限流、回滚或扩容,通常更容易得到可验证的结果。本文以 Linux 网站服务器为例。
一、先看影响,再看单个百分比
记录异常发生时间,并同时观察网站响应时间、错误率、CPU、内存和磁盘情况。备份、压缩或定时统计任务可能带来短时峰值;如果峰值过后恢复正常且没有业务超时,不应仅凭一张截图认定配置不足。
系统负载不等于 CPU 使用率。在 Linux 上,负载也可能包含等待 I/O 的不可中断任务;同样的负载数值,还应结合 CPU 核数与历史基线判断。高负载但 CPU 并未持续繁忙时,要继续检查磁盘等待与进程状态。
二、找到进程,并保留时间线
可通过系统监控或 top 等工具查看高占用进程,记录进程名称、进程号、启动时间和占用趋势。不要看到陌生名称就直接结束进程;先确认它属于网站服务、数据库、备份任务还是其他应用。
对照异常前后的发布、插件更新、计划任务和访问量变化。如果 CPU 每天在固定时间升高,应先检查任务是否重叠;如果从某次发布开始持续升高,则应优先比较代码与配置变更。整理日志时注意隐藏令牌、数据库密码及用户信息。
三、按进程类型继续定位
- 网站应用进程:检查是否有访问量突增、昂贵搜索、循环重试或单个接口耗时异常。结合访问日志中的请求数量、响应时间与状态码判断,不要仅凭某个 IP 请求较多就认定攻击。
- 数据库进程:核对慢查询、查询次数、连接数量与最近的数据增长。优化应以实际查询和执行计划为依据,避免临时删除索引或盲目扩大连接数。
- 备份与压缩进程:确认是否多个任务同时运行,以及任务是否卡住或重复触发。可以在评估恢复需求后错峰执行,而不是直接关闭备份。
- 异常未知进程:核对程序路径、账户、部署记录与日志;有明确入侵迹象时,先保留证据并限制影响范围。
四、别把内存和磁盘瓶颈误判为 CPU 不够
内存压力、频繁换页、慢磁盘或存储等待,都可能让网站变慢并伴随负载升高。应同时检查可用内存、换页活动、磁盘延迟与空间。云环境下还要注意监控工具如何统计虚拟 CPU,不能把单进程百分比与整机面板百分比直接等同。
如果瓶颈发生在磁盘或数据库等待,单纯增加 CPU 未必有效。先确定受限资源,再评估优化、调整任务并发或升级配置。
五、恢复操作要有回退路径
已经影响用户访问时,可根据证据暂停非关键批处理、限制高成本接口并发,或回滚已确认相关的变更。重启服务前先保存必要日志,并确认数据写入与任务恢复方式;不要把强制结束数据库进程作为常规处理。
修改后对照相同时段与相近流量,检查 CPU、响应时间、错误率和任务积压是否一起改善。若只有 CPU 下降而请求大量失败,说明并未真正恢复。
提交技术支持时准备哪些信息
准备实例标识、异常时间及其时区、监控曲线、受影响网址、主要进程和近期变更说明。通过玖伴云工单入口反馈时提供脱敏信息即可,不要在公开文章或截图中暴露登录凭据。
技术参考:Red Hat:系统状态与性能监控文档。不同系统和套餐的工具、权限及监控项可能有所不同。