当前位置: 首页 > news >正文

免费商城网站建设平台站长素材免费下载

免费商城网站建设平台,站长素材免费下载,杭州学校网站建设,北京做的比较好的网站公司文章目录 问题场景问题定位问题解决 本文参考: Linux服务器之CPU过高解决思路_linux cpu温度过高_Jeremy_Lee123的博客-CSDN博客 Java程序员必备:jstack命令解析 - 掘金 (juejin.cn) 重点问题!CPU利用率过高排查思路|原创 (qq.…

文章目录

  • 问题场景
  • 问题定位
  • 问题解决

本文参考:

Linux服务器之CPU过高解决思路_linux cpu温度过高_Jeremy_Lee123的博客-CSDN博客

Java程序员必备:jstack命令解析 - 掘金 (juejin.cn)

重点问题!CPU利用率过高排查思路|原创 (qq.com)

问题场景

通常会收到监控系统告警,相关服务器负载异常,cpu使用率过高

原因:可能是业务代码死循环、GC频繁、线程阻塞等

在虚拟机上运行下面的文件:

/*** @Author jiangxuzhao* @Description* @Date 2023/8/1*/
public class CPUHigh {public static void main(String[] args) {Thread t = new Thread(()->{int a = 3;while (true) {if (a == 3) {a = a/2;}else {a = 3;}}});t.start();}
}

javac CPUHigh.java

问题定位

1.执行top 命令查看占用cpu最多的Java进程为4018。

top

在这里插入图片描述

2.看到PID,根据pid进程号去查看它的所有线程,找到对应cpu占用最多的Java线程为4030。

top -Hp 4018

在这里插入图片描述

  1. 将10进制线程id 4030转换为16进制
[root@VM-8-3-centos ~] printf '%x\n' 4030
fbe
  1. 通过jstack命令找到进程4018对应的堆栈信息,搜索其中的线程id为16进制fbe的记录
[root@VM-8-3-centos ~]# jstack 4018 | grep fbe -C 10

结果如下:

2023-08-01 22:31:43
Full thread dump OpenJDK 64-Bit Server VM (25.362-b08 mixed mode):"Attach Listener" #10 daemon prio=9 os_prio=0 tid=0x00007fa70c001000 nid=0x7000 waiting on condition [0x0000000000000000]java.lang.Thread.State: RUNNABLE"DestroyJavaVM" #9 prio=5 os_prio=0 tid=0x00007fa73404b800 nid=0xfb3 waiting on condition [0x0000000000000000]java.lang.Thread.State: RUNNABLE"Thread-0" #8 prio=5 os_prio=0 tid=0x00007fa734203800 nid=0xfbe runnable [0x00007fa71fbd2000]java.lang.Thread.State: RUNNABLEat CPUHigh.lambda$main$0(CPUHigh.java:14)at CPUHigh$$Lambda$1/471910020.run(Unknown Source)at java.lang.Thread.run(Thread.java:750)"Service Thread" #7 daemon prio=9 os_prio=0 tid=0x00007fa73412f800 nid=0xfbc runnable [0x0000000000000000]java.lang.Thread.State: RUNNABLE"C1 CompilerThread1" #6 daemon prio=9 os_prio=0 tid=0x00007fa73411d000 nid=0xfbb waiting on condition [0x0000000000000000]java.lang.Thread.State: RUNNABLE

从中可以看出问题定位在Thread-0

问题解决

对于CPU占用率飙高的场景,刚才列举的测试代码只是一种情况,还有如下可能。

1.业务线程出现大量阻塞,比如synchronized锁,可以检索状态为BLOCKED的线程找到堆栈信息,然后分析。

2.网络IO或者磁盘IO阻塞导致的,排查方法和上面一样。

3.GC线程频繁导致,线程的标识为GC task thread,对于这种情况可能是年轻代设置不合理、大对象分配过多,old区存活对象过多,具体问题具体分析。

http://www.tj-hxxt.cn/news/122043.html

相关文章:

  • 自适应网站的优劣常州seo排名收费
  • 最优惠的郑州网站建设网页设计与制作
  • 台州哪里做网站网络广告推广公司
  • 四川眉山今天疫情实时动态防控青岛官网seo公司
  • 做音乐网站要注意什么苏州seo关键词排名
  • 旅游网站建设规范软文的目的是什么
  • 政府网站前台模板南昌seo服务
  • 山东做网站的公司咸阳seo
  • 购买网站在线客服系统seo怎么做最佳
  • 网站需求清单seo网站关键词快速排名
  • 网站登录系统怎样做单页应用seo如何解决
  • wordpress恢复网站seo品牌优化整站优化
  • 什么网站可以做相册google play 应用商店
  • 网站url优化练习成都自动seo
  • 做美食视频网站seo如何提升排名收录
  • 网站开发原型seo服务优化
  • 网站开发大数据广州网页定制多少钱
  • 汕头个人网站推广建设广州优化营商环境条例
  • 网站建设最好的一个产品的营销方案
  • 网站建设的评分细则淘宝代运营
  • 西安网站设计方案个人网站设计图片
  • 做dj网站能赚钱吗销售营销方案100例
  • 网站页面设计 8种常见的网站版面布局形式百度推广客户端
  • asp网站做搜索seoul是什么意思中文
  • 做ip资讯的网站关键词分词工具
  • 网站建设公司小猫建站深圳网络推广服务公司
  • 拼多多网络营销方式上海知名seo公司
  • 做网站用母版页不好么seo方法图片
  • wordpress网站非常慢扬州网站推广公司
  • wordpress多级分类目录重庆seo教程博客