centos cpu排查_linux CPU占用飙升的排查方法(一)

本文介绍了Linux系统中CPU占用率飙升的排查步骤,从使用vmstat观察系统负载,到利用top命令查找高CPU占用进程,再到通过jstack分析Java进程中的线程堆栈,最后针对问题代码进行优化。通过实际操作,帮助读者理解如何定位和解决CPU性能问题。
摘要由CSDN通过智能技术生成

前言

收到告警信息:”10.XXX.XXX.XXX机器CPU占用过高,请立即查看排查,确认无误后关闭告警!“, 那 linux CPU占用飙升要如何排查定位呢?

自己简单规整了下,最基本的排查方式可以分为以下几步吧?

确认是程序性能问题导致,还是系统硬件瓶颈?

确认引发CPU飙升的进程,进程PID?

确认引发飙升进程下哪个线程CPU占用率较高?

jstack打印进程下全部的线程堆栈信息,查找CPU占用较高的线程的堆栈详情信息?

根据第四步的堆栈信息,确定出现问题的代码行号,对比程序,修改优化程序。

如何确认是程序性能问题导致,还是系统硬件瓶颈?

个人习惯的做法是,使用先vmstat查看CPU负载情况:

vmstat : 查看系统维度的CPU负载

// 每间隔1秒钟打印一次系统维度的CPU复杂情况

vmstat -n 1

image.png

返回结果中的主要数据列说明:

r: 表示系统中 CPU 等待处理的线程。由于 CPU 每次只能处理一个线程,所以,该数值越大,通常表示系统运行越慢。

us:用户模式消耗的 CPU 时间百分比。该值较高时,说明用户进程消耗的 CPU 时间比较多,比如,如果该值长期超过 50%,则需要对程序算法或代码等进行优化。

sy:内核模式消耗的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值