精华内容
下载资源
问答
  • 查看java进程id ps -ef|grep java2.使用top -Hp进程id查看cpu比较高的线程3.执行jstack 进程id > threadStack进程id.log 命令4.使用printf %x线程的PID命令,将线程的将线程的PID转为十六进制5.在jstack导出的...

    1.排查问题的思路

    1.查看java进程id ps -ef|grep java

    395fad1b7f8a9169eb0af063314cc9d6.png

    2.使用top -Hp 进程id 查看cpu比较高的线程

    fb321cb7d6e1a71cc0915d5fc5609dff.png

    3.执行jstack 进程id > threadStack进程id.log 命令

    2c34f61d788edcd96605122d8ad49f78.png

    4.使用printf %x  线程的PID命令,将线程的将线程的PID转为十六进制

    d25ab2571ed4cf1eb309d92ff911b17f.png

    5.在jstack导出的文件中查找第4步得到的十六进制线程pid

    可以用vim的查找功能/0x1234,或是grep 0x1234 -A 20

    026a7e600e5774e69a387994765d8e67.png

    根据线程堆栈跟踪代码,解决问题。

    ps: 如果找不到,多执行几次步骤2、3(因为线程是不断变化的,所以需要手速)

    2.如何提升效率

    有没有发现上面的步骤很繁琐,而且非常考验个人手速

    推荐工具(思路沿用上面的思路 工具化提升生产力)

    1.下载&&解压工具

    wget --no-check-certificate https://github.com/oldratlee/useful-scripts/archive/release-2.x.zip

    unzip release-2.x.zip

    cd useful-scripts-release-2.x/

    e7f88398ed194a395fd3dc389d82c21f.png

    2.执行工具

    show-busy-java-threads -p

    d8036389abfbd9ffedfd20b2159830bb.png

    展开全文
  • liunx服务器上的weblogic工程,总是出现JAVA进程占用CPU过高,所以我用topH命令查看最高进程后用KILL-3xxxx命令,,反馈的信息请大神帮忙看看。。。反馈信息:"DynamicListenThread[Def...liunx服务器上的weblogic工程...

    liunx服务器上的weblogic工程,总是出现JAVA进程占用CPU过高,所以我用topH命令查看最高进程后用KILL-3xxxx命令,,反馈的信息请大神帮忙看看。。。反馈信息:"DynamicListenThread[Def...

    liunx服务器上的weblogic工程,总是出现JAVA进程占用CPU过高,所以我用top H 命令查看最高进程后用KILL -3 xxxx命令,,反馈的信息请大神帮忙看看。。。

    反馈信息:

    "DynamicListenThread[Default[1]]" RUNNABLE native

    java.net.PlainSocketImpl.socketAccept(Native Method)

    java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)

    java.net.ServerSocket.implAccept(ServerSocket.java:450)

    java.net.ServerSocket.accept(ServerSocket.java:421)

    weblogic.socket.WeblogicServerSocket.accept(WeblogicServerSocket.java:34)

    weblogic.server.channels.DynamicListenThread$SocketAccepter.accept(DynamicListenThread.java:522)

    weblogic.server.channels.DynamicListenThread$SocketAccepter.access$200(DynamicListenThread.java:419)

    weblogic.server.channels.DynamicListenThread.run(DynamicListenThread.java:165)

    java.lang.Thread.run(Thread.java:595)

    展开

    展开全文
  • A.java进程---大致流程是找出进程的pid-找到进程下占用资源最大的线程-用jstack打印出进程快照linux:1.top -c找到占用cpu较高的进程,获取到[pid]2.top -Hp [pid],查看该进程对应的线程,找到线程中占用cpu较高的...

    服务端cpu占用100%,如何排查?本文从java进程和sql给出排查思路。

    A.java进程---大致流程是找出进程的pid-找到进程下占用资源最大的线程-用jstack打印出进程快照

    linux:

    1.top -c找到占用cpu较高的进程,获取到[pid]

    2.top -Hp [pid],查看该进程对应的线程,找到线程中占用cpu较高的线程id(tid)

    3.jstack -l [pid] > /path/[pid].stack,打印出进程此时的快照

    4.vi [pid].stack或者cat [pid].stack|grep '[tid]的16进制' -C 8,查看该线程在cpu占用100%时做了什么

    使用截图:

    25dd4cbf40022deb4e3215fb1a3fbbbb.png

    windows:

    1.在任务管理中找到占用cpu较高的进程,获取[pid]

    2.使用Process Explorer获取该[pid]对应的线程,找到占用资源较高的线程id(tid)

    3.cmd窗口中输入jstack -l [pid] > /path/[pid].txt

    4.打开文件[pid].txt,查找[tid]的16进制所在的行,查看具体信息

    B.sql进程---例如在top -c中看到某个select占cpu100%...大致流程是找出当前具体是哪条sql在跑,再结合代码与业务分析

    在pgsql或navicat等sql工具的客户端找到“服务器状态”,然后可以看到服务端此时的sql动态,再将sql具体语句找到,进行分析:

    a94db4d6ad461508d19b785ab28ec2f3.png

    c78a1a36b5f73dddef26c5bfd7790054.png

    展开全文
  • 场景:服务器cpu告警,当前cpu占用过高,服务器包含一个或多个java服务 目标:定位导致服务器cpu占用过高的具体项目和具体代码 思考步骤: 1)先找到最耗CPU的进程; 2)再找到最耗CPU的线程; 3)最后查看...

    场景:服务器cpu告警,当前cpu占用过高,服务器包含一个或多个java服务

    目标:定位导致服务器cpu占用过高的具体项目和具体代码

    思考步骤:

        1)先找到最耗CPU的进程;

        2)再找到最耗CPU的线程;

        3)最后查看堆栈,定位对应代码;

    具体操作(干货来了):

    (为了让所有人动看的懂说句废话)打开服务器在控制台输入以下命令

    命令1:top   显示进程运行信息列表,可以查询到当前服务器的cpu基本情况,按P进程按照CPU使用率排序,拿到第一行第一列的PID 如12345。

    命令2:top -Hp 12345,这个12345就是命令1最后拿到的PID,显示一个进程的线程运行信息列表,按P线程按照CPU使用率排序,拿到第一行第一列的PID 如56789 。

    ps:这里可能有多个进程或线程占用过高,自己变通依次处理。

    命令3:printf "%x\n" 56789 把命令2拿到的PID转成16进制,拿到16进制的结果 如0a34x2。

    命令4:jstack 12345 | grep '0a34x2' -C5 --color  通过这个命令打印进程堆栈,通过线程id,过滤得到线程堆栈可以直接看到具体是哪里出了问题,定位到此结束。

    结语:当发现cpu爆满的时候先不要急于重启java服务来解决问题,可以先通过以上方法定位之后再进行重启。

    展开全文
  • java 服务器 cpu负载过高原因汇总

    千次阅读 2019-08-26 09:08:06
    cpu 负载:
  • ps -ef|grep java pidstat -u 1 -p 22425 free free - g free -m pidstat -p 22425 -r 2 硬盘剩余空间数 df df -h iostat -xdk 2 3 pidstat -d 2 -p 22425 ifstat 1 ----------------------------------...
  • 1. 输入top命令 查看所有的进程占用的cpu 2. 输入大写的M查看占用内存的或者输入大写的P查看cpu使用 3. 找到要查看的进程,输入ps -mp 22315 -o THREAD,tid,time查看其所有的线程,可见红色圈占用的cpu过多 ...
  • 项目上线后运行一段时间,突然发现cpu 8个逻辑核心...查找哪些进程在耗cpu 进入服务器,top 命令看一下,发现进程6633占用了800% [root@3server ~]# top 2.把进程的栈dump到文件里,以便后面的分析 [root@3serve...
  • 当发现生产环境CPU使用非常高,并且居高不下,导致服务器报警,需要快速定位,分析是什么地方占用CPU过高,推荐步骤如下: 1. 首先服务器查看占用cpu高的进程是哪一个,查出进程号 top 2.查询该进程中具体是...
  • 现在已经开了很多区了 但是有个区的服务器CPU总是动不动的就100%别的区没有问题的 用jmap看了下 [img=https://img-bbs.csdn.net/upload/201608/17/1471406900_938922.png][/img] 左边是正常情况数据 右边是cpu...
  • public void main1() { // 虚拟机级内存情况查询 long vmFree = 0;... System.out.println("cpu1:"+processCpuLoad); System.out.println("cpu2:"+systemCpuLoad); System.out.println("cpu3:"+processCpuTime); }
  • 查找哪些进程在耗cpu进入服务器,top 命令看一下,发现进程6633占用了800%[root@server ~]# top2.把进程的栈dump到文件里,以便后面的分析[root@server ~]#jstack 23812 >> java.txt3.看看这个进...
  • 平时项目中有时遇到cpu过高的情况,在此基于自己有限的经验写个分享,此处的服务器都是基于linux平台。cpu的占有线程类型总的来说分为两种:us :用户空间占用CPU百分比sy :内核空间占用CPU百分比在linux下可以通过...
  • 平时项目中有时遇到cpu过高的情况,在此基于自己有限的经验写个分享,此处的服务器都是基于linux平台。cpu的占有线程类型总的来说分为两种:us :用户空间占用CPU百分比sy :内核空间占用CPU百分比在linux下可以通过...
  • Java获取服务器CPU、内存、磁盘、系统信息新建CPU类存放CPU信息新建磁盘类存放磁盘信息新建内存类存内存信息新建系统类存系统信息最后新建服务器类整合所有信息例行测试 导入依赖 <!-- 获取系统信息 --> <...
  • 1、使用命令top查看cpu进程,发现tomcat占用cpu使用率过高可以看到服务器负载很高,tomcat CPU使用已达到接近300%,内存20%。2、把进程的栈dump到文件里,以便后面的分析jstack 22764 > cpu0827.log 3、看看这个...
  • 查找哪些进程在耗cpu进入服务器,top 命令看一下,发现进程6633占用了800%[[emailprotected] ~]# top2.把进程的栈dump到文件里,以便后面的分析[[emailprotected] ~]# jstack 6633 > cpu1128...
  • java 获取服务器CPU、内存、硬盘使用量 /** * * * @author wenkaixuan * @version [版本号, 2012-5-9] * @see [相关类/方法] * @since [产品/模块版本] */ public class GetSystemInfo { ...
  • 服务器cpu占用100% 项目上线后运行一段时间,突然发现cpu 8个逻辑核心都占用100%,心情很紧张,然后就在网上找了一些解决方法,具体如下: 1.查找哪些进程在耗cpu 进入服务器,top 命令看一下,发现进程6633占用...
  • 1、故障现象客服同事反馈平台系统运行缓慢,网页卡顿严重,多次重启系统后问题依然存在,使用top命令查看服务器情况,发现CPU占用率过高。2、CPU占用过高问题定位2.1、定位问题进程使用top命令查看资源占用情况,...
  • 一、内存过高1、内存过高一般有两...久而久之,内存泄漏的对象堆积起来,也会导致物理机的内存被耗尽,出现OOM报错2、内存过高的检测办法:通常我们的Java服务器部署在Linux机器上面,可以通过jvm自带的命令进行一些...
  • 原标题:如何排查Java服务器内存和CPU过高问题 一、内存过高1、内存过高一般有两种情况:内存溢出和内存泄漏(1)内存溢出:程序分配的内存超出物理机的内存大小,导致无法继续分配内存,出现OOM报错。(2)内存泄漏:...
  • 多个场景CPU使用率高,java进程占用服务器cpu超过85%以上; 二、问题定位 三、原因: spring匹配url的时候使用了正则,正则表达式会比较耗费CPU,类和方法上均使用了 @RequestMapping 注解,会使用正则表达式去匹配...
  • java web服务器cpu占用过高的处理

    千次阅读 2015-09-09 14:54:14
    平时项目中有时遇到cpu过高的情况,在此基于自己有限的经验写个分享,此处的服务器都是基于linux平台。 cpu的占有线程类型总的来说分为两种: us :用户空间占用CPU百分比 sy :内核空间占用CPU百分比 一般来讲CPU...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,430
精华内容 1,372
关键字:

java服务器cpu

java 订阅