首页 > 系统相关 >查找消耗cpu最高的Java进程

查找消耗cpu最高的Java进程

时间:2023-04-17 18:35:28浏览次数:27  
标签:grep java pid echo dumpFilePath 查找 Java cpu

#!/bin/bash
if [ -z "$1" ]; then
        ### 1.先找到消耗cpu最高的Java进程 ###
        pid=`ps -eo pid,%cpu,cmd --sort=-%cpu | grep java | grep -v grep | head -1 | awk 'END{print $1}' `
        if [ "$pid" =  ""  ]; then
                echo "无Java进程,退出。"
                exit
        fi
else
        pid=$1
fi
curTime=$(date +%Y%m%dT%H%M%S)
dumpFilePath="./pid$pid−$curTime.jstack"

echo -e  "java 进程ID为 $pid" > $dumpFilePath
ps -ef|grep $pid >> $dumpFilePath
topThreadId=`top -b -n 1 -Hp $pid|grep java|head -n 1|awk '{print $1}'`
cpuUsage=`top -b -n 1 -Hp $pid|grep java|head -n 1|awk '{print $9}'`
echo -e  "最耗cpu的使用率为 $cpuUsage">>$dumpFilePath
topThreadId16=`printf "%x" $topThreadId`
topThreadId16ThreadName="nid=0x$topThreadId16"
echo -e  "最耗cpu的java线程ID 16进制为 $topThreadId16ThreadName">>$dumpFilePath
jstack -l $pid >>$dumpFilePath
#threadDe -e tail=`jstack ${pid}|grep ${topThreadId16} -C 10`
#echo "$threadDetail

 

标签:grep,java,pid,echo,dumpFilePath,查找,Java,cpu
From: https://www.cnblogs.com/wujf/p/17326755.html

相关文章

  • 坦克大战项目实践(Java)
     一、设计简介该项目是设计一个坦克大战小游戏,该游戏算不上精美,但是有始有终。有明确的游戏开始、单人模式、双人模式、游戏暂停和游戏失败等事件。设计内容包含图片双缓存技术,解决游戏屏幕闪动问题;还包含了击毁坦克的爆炸特效与子弹消失;还包含了碰撞检测,包括墙体和边界的。二......
  • java查看对象占用内存的大小
    1.首先引入jar包lucene-core-4.7.2.jar<dependency><groupId>org.apache.lucene</groupId><artifactId>lucene-core</artifactId><version>4.0.0</version></dependency><depende......
  • 通过JAVA语言如何获取淘宝/天猫搜索词推荐
    Java是一种跨平台的、面向对象的高级编程语言,主要用来进行网站后台开发和AndroidAPP开发,同时它是全球最受欢迎的编程语言之一,在世界编程语言排行榜TIOBE中,Java一直霸占着前三名,有好多年甚至都是获得了第一名。那么为什么Java会如此受欢迎呢?Java是一种半编译型语言,开发比......
  • Java与Mysql锁相关知识总结
    锁的定义在计算机程序中锁用于独占资源,获取到锁才可以操作对应的资源。锁的实现锁在计算机底层的实现,依赖于CPU提供的CAS指令(compareandswsp),对于一个内存地址,会比较原值以及尝试去修改的值,通过值是否修改成功,来表示是否强占到了这个锁。JVM中的锁jvm中,有2个常用的锁synchr......
  • javascript
    1970.1.1互联网开始时间**JavaScript(开发Web页面的脚本语言)**是面向Web的编程语言,获得了所有网页浏览器的支持,是目前使用最广泛的脚本编程语言之一,也是网页设计和Web应用必须掌握的基本工具。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最......
  • 关于Java中值传递和址传递
    参数传递在Java中有两种类型值和址其实本质都是一份拷贝在调用函数的时候进行压栈传进来的参数会被开辟一份新的空间传基本类型是把值传过去传引用数据类型是实例指向实参voidm(intv){//基本数据类型传值是一份拷贝不会影响实参v++}voidm(int[]arr){//底层i......
  • linux系统查找文件命令find,xargs
    FIND命令形式:findpathname-options[-print-exec-ok]pathname要查找的路径(.表示当前目录,/表示系统根目录)-print输出-exec 对匹配的文件执行该参数所给出的shell命令-execrm{}\;注意{}和\;之间的空格-ok以一种更为安全的模式来执行shell命令find命令有很多选项或表达式,每一......
  • Java集合框架
    Java集合框架概述Java集合框架是一个抽象数据类型的框架,它提供了一组接口和类,可用于处理各种类型的数据结构,如列表、队列、集、映射等。Java集合框架的主要特点是:1、可扩展性:Java集合框架提供了一组可扩展的接口和类,可让开发人员根据自己的需要实现新的数据结构和算法。2、高性能:Ja......
  • Java8新特性4_强大的Stream
    StreamAPI了解StreamJava8中有两个比较大的改变Lambda表达式StreamAPI(java.util.stream.*)Stream是Java8中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找,过滤和映射数据等操作。使用StreamAPI对集合数据进行操作,就类似于使用SQL执行的......
  • Java8新特性5_并行流
    并行流与顺序流并行流并行流就是把一个内容分成多个数据库,并用不同的线程分别处理每个数据块的流Java8中将并行流进行了优化,我们可以很容易的对数据进行并行操作,StreamAPI可以声明性的通过parallel()与sequential()在并行流与顺序流之间进行切换Fork/Join框架概念Fork/J......