开发者社区 > 云原生 > 正文

Arthas中pod cpu达到100%你们是如何排查问题的呢?

Arthas中pod cpu达到100%你们是如何排查问题的,当cpu快达到100%时,你们有生成类似dump文件的日志吗?

展开
收起
小小鹿鹿鹿 2023-11-14 22:49:51 199 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    当 Arthas 中的 Pod 的 CPU 利用率达到 100% 时,可以按照以下步骤来排查问题:

    1. 确认问题是否持续: 首先确定 CPU 利用率持续为 100%,而不是短暂的 CPU 峰值。如果是峰值,可能是正常的负载波动,无需进一步排查。

    2. 检查应用程序代码: 检查应用程序的代码逻辑,特别是与 CPU 密集型任务相关的部分。查看是否存在无限循环、死锁、大量资源消耗等问题。

    3. 检查第三方库和框架: 如果应用程序使用了第三方库或框架,确保其版本和配置正确,并检查是否有已知的性能问题或 bug。升级到最新版本或尝试替换其他库来排除问题。

    4. 观察系统资源: 使用工具监控和观察系统的其他资源情况,如内存、磁盘 I/O 等。高 CPU 利用率可能是由其他资源瓶颈引起的。确保没有其他资源竞争导致的性能问题。

    5. 使用性能分析工具: 针对 CPU 利用率高的线程,使用性能分析工具如 JDK 提供的 JVisualVM、Java Mission Control,或者第三方工具如 Perf、Grafana 等,来进行深入分析和定位。这些工具可以帮助找出热点代码、线程调用关系等,并给出性能优化建议。

    6. 优化代码和配置: 根据分析结果,针对发现的性能问题进行代码优化、调整应用程序配置,以降低 CPU 的使用量。可能需要优化算法、并发控制、资源管理等方面的设计。

    7. 压力测试和监测: 在解决问题后,可以进行压力测试,模拟实际负载,观察 CPU 利用率的变化。持续监测和调整系统的性能表现,确保问题得到彻底解决。

    2023-11-30 22:51:23
    赞同 展开评论 打赏
  • 当Arthas中的pod cpu达到100%时,首先需要理解这大概率是代码存在死循环。为了定位问题,可以使用arthas工具进行排查。arthas是阿里巴巴开源的Java诊断工具,它提供了许多实用的指令来帮助开发者进行问题定位。

    具体操作步骤如下:

    1. 使用命令java -jar arthas-boot.jar启动arthas。
    2. 输入dashboard命令查看系统的实时数据面板,这里可以查看到各个线程的状态,包括CPU占用、内存占用等信息。
    3. 通过点击左侧的“Thread”标签页,可以查看Java应用程序的线程栈信息。从线程栈信息中,可以定位到具体的Java代码,从而找到导致CPU占用高的原因。
    4. 如果需要查看更详细的线程堆栈信息,可以使用thread -n <num> -i <interval>命令,其中<num>表示要查看的线程编号,<interval>表示每隔多少毫秒输出一次堆栈信息。

    此外,当CPU快达到100%时,可以考虑生成dump文件来进一步分析。Dump文件是进程的内存镜像,它可以帮助我们更好地理解进程的状态和行为。在Linux系统中,可以使用kill -3 <pid>命令为进程生成dump文件。然后可以使用像perf或gdb这样的工具来分析这个dump文件,找出导致CPU占用高的原因。

    2023-11-15 15:30:09
    赞同 展开评论 打赏

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
Arthas应用诊断利器-新特征介绍 立即下载
使用Arthas 抽丝剥茧深入应用-线上诊断利器之外 立即下载
workshop专场--容器、消息&IoT专场-开发者动手实践营-容器、消息和IoT-Java诊断利器Arthas排查问题实践 立即下载