问题:公司一个系统在测试单个功能登录上,并发才5个用户时,CPU使用率就瞬间飙升到100%

排查过程:

1、首先查看系统资源占用信息,使用top命令,查看那个进程占用CPU高

发现正在运行的JAVA项目CPU占用率很高,百分之364.2了,那么问题一定出在这个程序中

2、通过 top -H -p pid 找到导致cpu高的线程

备注:也可以通过Ps -mp pid -o THREAD,tid,time查看

在这里可能会出现三种情况:

  1. 第一种情况,某个线程一直CPU利用率100%,则说明是这个线程有可能有死循环,那么请记住这个PID。
  2. 第二种情况,某个线程一直在TOP十的位置,这说明这个线程可能有性能问题。
  3. 第三种情况,CPU利用率TOP几的线程在不停变化,说明并不是由某一个线程导致CPU偏高。

如果是第一种情况,也有可能是GC造成,我们可以用jstat命令看下GC情况,看看是不是因为持久代或年老代满了,产生Full GC,导致CPU利用率持续飙高,命令如下。


[test@iZ8vb8rrw7wiwqwx22tcsrZ log]$ jstat -gcutil 377 1000 5S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT   0.00  26.33  11.63  11.99  97.36  93.41     63    2.600     5    2.399    4.9980.00  26.33  25.30  11.99  97.36  93.41     63    2.600     5    2.399    4.9980.00  26.33  40.19  11.99  97.36  93.41     63    2.600     5    2.399    4.9980.00  26.33  53.16  11.99  97.36  93.41     63    2.600     5    2.399    4.9980.00  26.33  65.35  11.99  97.36  93.41     63    2.600     5    2.399    4.998

3、定位线程具体问题,将TID转换成16进制,通过printf '0x%x' tid 命令,因为线程堆栈情况记录的是线程的16进制id:

[test@iZ8vb8rrw7wiwqwx22tcsrZ log]$ /usr/bin/printf   '0%x\n'   12095
02f3f

4、jstack pid | grep tid  找到线程堆栈

jstack 11572 | grep 02f3f -A 30

分析:

(1)查看下TCP连接状态

[test@iZ8vb8rrw7wiwqwx22tcsrZ log]$ netstat -nat | awk '{print $6}' | sort | uniq -c | sort -n1 established)1 Foreign7 LISTEN111 ESTABLISHED

(2)用jstack dump看看这些线程都在做什么

也可以将线程dump出来,看看究竟是哪个线程,执行什么代码造成的CPU利用率高。执行以下命令,把线程dump到文件dump01里。

jstack  11572 > dump01

(3)统计下所有线程分别处于什么状态

[test@iZ8 ~]$ grep java.lang.Thread.State dump01 | awk '{print $2$3$4$5}' | sort | uniq -c8 RUNNABLE26 TIMED_WAITING(onobjectmonitor)40 TIMED_WAITING(parking)4 WAITING(onobjectmonitor)52 WAITING(parking)

(4)查看处于WAITING(parking)的线程信息

后续待定。。。。。

  • 查看Java线程数 ps -eLf | grep java -c

【性能定位】cpu占用率过高问题排查相关推荐

  1. linux cpu不足处理运维,Linux运维知识之Linux服务器CPU占用率较高问题排查思路

    本文主要向大家介绍了Linux运维知识之Linux服务器CPU占用率较高问题排查思路,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. 注意:本文相关配置及说明已在 CentOS  ...

  2. java项目内存使用率过高排查_项目内存或者 cpu 占用率过高如何排查

    前言:小编总结了之前生产环境cpu 占用率过高等问题,小编功力不够深厚,文章如有不对的地方,还望各位大神指正. 排查原因:客服反馈说系统访问缓慢 一. 在排查问题的过程中针对 CPU 的问题, 使用以 ...

  3. Linux 系统 CPU 占用率较高问题排查思路

    CPU负载查看方法: 使用vmstat查看系统维度的CPU负载 使用top查看进程维度的CPU负载 https://blog.csdn.net/lufeisan/article/details/531 ...

  4. cpu满了卡住 linux_Linux系统中CPU占用率较高问题排查思路与解决方法

    前言 作为 Linux 运维工程师,在日常工作中我们会遇到 Linux服务器上出现CPU负载达到100%居高不下的情况,如果CPU 持续跑高,则会影响业务系统的正常运行,带来企业损失. 很多运维的同学 ...

  5. linux 使cpu使用率升高_Linux系统中CPU占用率较高问题排查思路与解决方法

    Linux服务器上出现CPU负载达到100%居高不下的情况,如果CPU 持续跑高,则会影响业务系统的正常运行: CPU利用率.根据经验来看,用户空间进程占用CPU比例在 65-70%之间,内核(系统) ...

  6. 内存或者 cpu 占用率过高如何排查

    排查原因:客服反馈说系统访问缓慢 一. 在排查问题的过程中针对 CPU 的问题, 使用以下命令组合来排查问题 模拟过程: ①示例代码: package com.sunxxx.task;import o ...

  7. jstack定位CPU占用率高的线程代码

    目录 一.背景 二.jstack定位实战演示 三.关于线程的状态 四.最后 一.背景 性能测试过程中,如果我们发现应用服务器CPU使用率高(超过70%),接口TPS低的现象,此时常见的情况是由以下的原 ...

  8. 如何定位cpu占用率高的java线程

    如何定位cpu占用率高的java线程 工具: 1 jstack:jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项&q ...

  9. compattelrunner.exe占用磁盘过高_Linux 系统 CPU 占用率太高?

    在使用Linux 系统时,经常会遇到 CPU 占用率太高的问题.此篇文章教你如何解决,排查解决的思路是什么 CPU负载查看方法: 使用vmstat查看系统维度的CPU负载 使用top查看进程维度的CP ...

最新文章

  1. 如何看懂照片的直方图
  2. ArrayList、LinkedList和Vector
  3. 困恼的mappedBy
  4. 2019编译ffepeg vs_2020/5-Win10下ffmpeg最简编译方法
  5. 3层vni vxlan_VXLAN技术:三层网络构建虚拟的二层网络
  6. MySQL流浪记(二)—— MySQL介绍及其特性
  7. Flutter中使用友盟统计
  8. <EDEM 基础案例02>Rock Box
  9. matlab 单相整流电路,MATLAB的单相桥式整流电路研究
  10. 《好好学习·成甲》教你如何学习学习
  11. 关于电子科技大学大学生早自习情况调查
  12. 安装Sublime Text 3插件的方法:
  13. 查询mysql数据库中各shema中的表数量【存储过程】
  14. python后端工程师岗位职责_【PYTHON后端开发工程师岗位职责_PYTHON后端开发工程师职责/工作内容】-猎聘岗位职责频道...
  15. 3D建模师的需求到底有多大?以前想都不敢想
  16. 数据库设计-SQL Server开发实现学习
  17. 如何创建dblink
  18. win10无线投屏_miracast投屏的未来
  19. EXCEL中阿拉伯数字版转成汉语大写代码
  20. Activity软盘配置

热门文章

  1. Spark 机器学习 概括统计 summary statistics [摘要统计]
  2. java课程设计-多人聊天工具(socket+多线程)
  3. HTML5重构互联网:浏览器将部分替代操作系统
  4. c语言扫雷游戏策划文档,扫雷游戏程序设计课设计报告.doc
  5. 第K小元素 时间复杂度n
  6. python timedelta对象_python timedelta函数是什么?
  7. 爱奇艺快手采购量大涨,迅雷云计算业务前景看好
  8. C++常用数学运算(待完结)
  9. Java线程安全集合总结
  10. 【Paddle打比赛】基于PaddleNLP法研杯2022 -犯罪事实实体识别