草庐IT

排查线上CPU飙高

1、本案例的排查过程使用的阿里开源的Arthas工具进行的,不使用arthas,使用JDK自带的命令也是可以。2、在开始排查之前,可以先看一下CPU的使用情况,最简单的就是使用top命令直接查看(大写P按照CPU占用率排序):top-10:32:38up11days,17:56,0users,loadaverage:0.84,0.33,0.18Tasks:23total,1running,21sleeping,0stopped,1zombie%Cpu(s):95.5us,2.2sy,0.0ni,76.3id,0.0wa,0.0hi,0.0si,6.1stKiBMem:8388608total,

SpringBoot 模拟将CPU打满100%

一、环境说明闲暇之余,做个小测试,笔记以加深印象,仅学习使用操作系统:CentOS7.9操作系统.pngCPU:2个CPU,每个CPU5核,共10核image.png二、代码说明起一个线程,死循环不中断,那这个线程会占用这个一个CPU核心,并将其打满100%。由此,我们要将整个操作系统的CPU吃满就很简单了,起10个线程即可。1、新建一个线程池image.png2、写一个Controller,没一次请求,起一个线程image.png三、开始测试看效果1、启动SpringBoot服务,空闲状态下,可以看到基本上CPU很空闲image.png2、先来一个请求,尝试让一个CPU核忙起来image.p

SpringBoot 模拟将CPU打满100%

一、环境说明闲暇之余,做个小测试,笔记以加深印象,仅学习使用操作系统:CentOS7.9操作系统.pngCPU:2个CPU,每个CPU5核,共10核image.png二、代码说明起一个线程,死循环不中断,那这个线程会占用这个一个CPU核心,并将其打满100%。由此,我们要将整个操作系统的CPU吃满就很简单了,起10个线程即可。1、新建一个线程池image.png2、写一个Controller,没一次请求,起一个线程image.png三、开始测试看效果1、启动SpringBoot服务,空闲状态下,可以看到基本上CPU很空闲image.png2、先来一个请求,尝试让一个CPU核忙起来image.p

Java线上CPU内存冲高问题排查步骤

1引言作为一名从事Java开发快一年的程序员,在线上经常碰到某个模块的Pod发出CPU与内存告警的问题,而这些问题会导致系统响应缓慢甚至是服务不可用。一般情况下可以通过重启或者调高Pod的资源量或者增加Pod数量暂时解决问题,但这是治标不治本的,只有找到问题发生的原因才能从根本上解决问题。那么在该如何快速定位到导致告警的原因呢?下面将汇总一下大致的处理思路。一般来说导致Java程序CPU与内存冲高的原因有两种:代码中某个位置读取数据量较大,导致系统内存耗尽,从而导致FullGC次数过多,系统缓慢。代码中有比较耗CPU的操作,导致CPU过高,系统运行缓慢。代码某个位置有阻塞性的操作,导致该功能调

Java线上CPU内存冲高问题排查步骤

1引言作为一名从事Java开发快一年的程序员,在线上经常碰到某个模块的Pod发出CPU与内存告警的问题,而这些问题会导致系统响应缓慢甚至是服务不可用。一般情况下可以通过重启或者调高Pod的资源量或者增加Pod数量暂时解决问题,但这是治标不治本的,只有找到问题发生的原因才能从根本上解决问题。那么在该如何快速定位到导致告警的原因呢?下面将汇总一下大致的处理思路。一般来说导致Java程序CPU与内存冲高的原因有两种:代码中某个位置读取数据量较大,导致系统内存耗尽,从而导致FullGC次数过多,系统缓慢。代码中有比较耗CPU的操作,导致CPU过高,系统运行缓慢。代码某个位置有阻塞性的操作,导致该功能调