赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. Serverless应用引擎(新版)
  4. 服务支持
  5. 常见问题
  6. 日志、监控和诊断FAQ
  7. 监控FAQ
  8. 为什么CPU负载高?

为什么CPU负载高?

  • 监控FAQ
  • 发布于 2025-04-17
  • 0 次阅读
文档编辑
文档编辑

本文介绍使用SAE时,如何解决CPU负载高的问题。

问题现象

  • CPU使用率100%
  • CPU使用率高
  • 负载(Load)高

问题原因

CPU使用率高或者负载高的原因与程序运行状态有关,包括启动时与运行时。

解决方案

场景一:启动时CPU使用率高/负载高

部分语言(例如Java)在刚启动时,存在二次编译的过程。Java会随着程序的运行把字节码编译为机器码,这时候叠加正常的流量处理,就会表现为启动时CPU使用率高/负载高,但启动阶段结束后便会下降。请确认您所使用的语言是否有该特性,如果是该原因,则是正常现象,建议您多预留一部分缓冲(Buffer)。

场景二:运行时CPU使用率/负载高

  1. 根据SAE的基础监控确认各个指标情况,是否有相关性。例如CPU使用率高的同时,查看到TCP连接数也大增,就可以结合程序特点,推导背后的根因。
    可以考虑将应用级别的监控切换为实例级别的监控,确认CPU使用率高/负载高出现在所有实例还是个别实例。如果只有个别实例CPU使用率高/负载高,考虑是否可能有该机器运行的定时任务,或者某些特定业务请求触发了大批量操作。sc_choose_instance_on_basic_monitoring_page
  2. 可选:如果您的应用是Java语言,您还可以按如下步骤排查。
    1. 执行top命令,查看进程的系统资源占用信息,通常可以看到Java进程占用CPU较高。
    2. 执行top -H命令,查看线程的资源占用,找到CPU较高的线程ID。根据线程ID,执行[printf "%x\n" 线程_id]转换为十六进制。

      部分ALPINE镜像可能不支持top -H命令,您需要先安装Htop命令。具体操作,请参见如何安装常见命令?。

    3. 参见Java通过Jstack查看线程栈获得Java的线程栈,通过和上面十六进制的线程ID匹配,找到CPU占用较高的线程栈,分析根因。sc_run_command_printfsc_view_matched_cpu
相关文章

为什么CPU负载高? 2025-04-17 10:56

本文介绍使用SAE时,如何解决CPU负载高的问题。 问题现象

SAE监控支持的语言有哪些? 2025-04-17 10:56

本文介绍使用SAE时,SAE不同监控支持的语言有哪些。 基础监控:任何语言均支持。 应用监控:任何语言均支持,其中通过Arms支持

应用监控没有数据怎么处理? 2025-04-17 10:56

问题现象 应用监控没有数据。

如何在SAE中使用ARMS监控? 2025-04-17 10:56

SAE自带ARMS基础应用监控功能(免费),无需单独设置,已覆盖QPS、RT(响应时间)、接口调用量、错误数等指标的监控,帮助您快速定位出错接口和慢接口,以及发现系统瓶颈。您可以在应

部署应用后如何推送消息通知? 2025-04-17 10:56

本文介绍在使用SAE时,如何为应用设置消息推送。 应用部署到SAE后,您可以为应用设置消息推送,获取指定的异常状态报告,例如CPU过载、实例重启等。SAE支持以下两种推送方式。 监控告警

TCP连接数的计算逻辑是什么? 2025-04-17 10:56

本文介绍使用SAE时,如何计算TCP的连接数。 SAE计算TCP连接数逻辑与ss命令逻辑相同,可通过ss -s命令进行验证。示例如下图所示。<

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号