查找消耗cpu最高的Java进程

#!/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

 

后台兼职接单中,联系我微信:wjf88520

一杯奶茶协助解决各类开发运维问题,欢迎交流

by wujf

mail:921252375@qq.com

本文转载于网络 如有侵权请联系删除

相关文章

  • React报错之组件不能作为JSX组件使用

    原文链接:https://bobbyhadz.com/blog/react-cannot-be-used-as-a-jsx-component[1]作者:BorislavHadzhiev[2]正文从这开始~总览组件不能作为JSX组件使用,出现该错误有多个原因:返回JSX元素数组,而不是单个元素。从组件中返回JSX元素或者null以外的任何值。使用过时的React类型声明。返回单个JSX元素下面是一个错误如何发生的示例。//App.tsx //⛔️'App'cannotbeusedasaJSXcomponent. //Itsreturntype'Element[]'isnotavalidJSXelement. //Type'Element[]'ismissingthefollowingpropertiesfromtype'ReactElement<any,any>':type,props,key constApp=()=>{ return['a','b

  • 神经网络 Attention

    随着神经网络的发展,注意力模型已经被广泛的应用到自然语言处理,统计学习语音识别和计算机视觉等人工智能相关领域。 简介Attention机制:又称为注意力机制,顾名思义,是一种能让模型对重要信息重点关注并充分学习吸收的技术.通俗的讲就是把注意力集中放在重要的点上,而忽略其他不重要的因素。其中重要程度的判断取决于应用场景,根据应用场景的不同,Attention分为空间注意力和时间注意力,前者用于图像处理,后者用于自然语言处理.注意力机制的灵感来源可以归结到人对环境的生理感知上来。比方说,我们的视觉系统更倾向于去挑选影像中的部分信息进行集中分析而忽略掉图像中的无关信息。与此类似,很多设计到语言,语音和视觉的问题中都包含与研究任务密切相关的信息,同时也包含着一些无关的信息。比方说,在文本翻译和总结任务中,可能只有输入序列的某些单词与我们的下一个预测输出值有关;在图像标注任务中,可能某些局部信息与下一个标注单词联系更为密切。注意力机制将这种相关系进行了整合,允许模型动态地去关注输入的特定部分从而更为有效地完成手头的任务。在神经网络结构中加入注意力模型主要是基于三点考虑:首先是这些模型在众多的任务

  • 自定义类加载器

    为什么需要自定义类加载器自定义类加载器是从实际场景出发,解决一些应用上的问题,比如:热部署、插件化类:常用的比如SpringBoot-devtools和Arthas等工具,其实现原理就用到了类加载机制加密:有些核心代码不想公开,但又必须使用,可以通过加密类字节码的方式将编译后的加密代码交给类加载器加载,再采用某种解密算法将真正的类载入JVM,保证核心代码不被反编译泄漏类隔离:在项目中可能不同的微服务用的某个类的版本不一样,某些应用依赖于特定版本的SDK功能,自定义类加载器可以解决某个同名的Class想要加载不同的版本的场景,实现同名Class多版本共存,相互隔离从而达到解决版本冲突的目的。如Java模块化规范OSGi、蚂蚁金服的类隔离框架SOFAArk非标准化来源加载代码:编译后的字节码在数据库、云端等情况双亲委派模型想要自定义类加载器,一定需要了解双亲委派模型双亲委派模型加载class的步骤可为如下几步:根据全限定类名(name)**判断类是否加载**,如果已经加载则直接返回已加载类。如果没有加载,尝试**委托父类加载器**加载此类。同时,**父类加载器也会采用相同的策略**,查看是

  • size.width>0 && size.height>0 in function ‘cv::imshow‘

    importcv2ascv importnumpyasnp #读取图片 img=cv.imread(r'E:\Downloaded\pexels\Thesea21471.jpeg',1) #获取图片的长宽信息 sp=img.shape length=sp[1] heighth=sp[0] print('加载的图片的宽度:{},高度:{}'.format(length,heighth)) #显示窗口和图片 cv.namedWindow('原图片') cv.imshow('原图片',img) #转换成灰度图片 img2=cv.cvtColor(img,cv.COLOR_BGR2GRAY) cv.namedWindow('转换后') cv.imshow('转换后',img2) #图像二值化 cv.threshold(img,280,500,0,img) cv.namedWindow('图像二值化') cv.imsho

  • 前程无忧财报:招聘巨头囚于天花板

    配图来自Canva​餐馆人满了、电影院开了、发布会来了,疫情对各行各业的影响影响似乎已经过去,但在线招聘行业还没有。受全球疫情影响,各大互联网巨头、传统制造业巨头等等均暂停了招聘计划,甚至裁员缩减开支。美国公司candor对多家科技公司招聘情况调查结果显示,其中267家(58%)暂停、36家(7%)取消、44家(9%)正在裁员。招聘市场供需关系不平衡,直接影响在线招聘平台营收,从“老前辈”前程无忧二季度财报可窥视一二。近期,前程无忧发布了截至6月30日的2020财年第二季度未经审计财报。财报显示,2020年Q2,前程无忧营收8.286亿元(约合1.173亿美元),较去年同期的9.636亿元下降14.0%。净利润为3.767亿元(约合5330万美元),较去年同期的净利润6740万元上涨459%;每股收益为人民币5.55元(约合0.79美元),相比之下去年同期为人民币1.00元。前程无忧总营收下降,说明各项业务业绩不理想,而疫情影响还未完全消逝,业绩不理想的原因可想而知。疫情重击,难喘息疫情期,丢了饭碗的人很多,后来在政策的推动下,大家都摆地摊去了,这也是“地摊经济”一时火爆的原因。这一现

  • Kali Linux Web渗透测试手册(第二版) - 2.8 - 利用robots.txt

    翻译来自:掣雷小组 成员信息:thr0cyte,Gr33k,花花,MrTools,R1ght0us,7089bAt,这个公众号,一定要关注哦,慢慢会跟上面老哥们一起分享很多干货哦~~标记红色的部分为今日更新内容。第二章:侦察介绍2.1、被动信息收集2.2、使用Recon-ng收集信息2.3、使用Nmap扫描和识别应用服务2.4、识别web应用防火墙2.5、识别HTTPS加密参数2.6、使用浏览器自带的开发工具来做基本的分析和修改2.7、获取和修改cookie2.8、利用robots.txt2.8、利用robots.txt更进一步,我们需要弄清楚站点中是否有任何页面或目录没有链接到向普通用户显示的内容,例如,到内部网或内容管理系统(CMS)的登录页面。找到类似的站点将大大扩展我们的测试表面,并为我们提供关于应用程序及其基础结构的一些重要线索。在这小节中,我们将使用robots.txt文件,用于发现一些在主要应用程序中无法链接到的文件和目录。怎么做…为了说明渗透测试如何利用robots.txt。我们将在vm_1中使用vicnum,这是一个脆弱的web应用程序,它包含三个数字和单词猜测游戏。

  • XLua-热更新(HotFix)

    仿照XLua的官方例子,我们做一个XLua的热更新 1.按照hotfix.md的使用说明1、添加HOTFIX_ENABLE宏打开该特性(在Unity3D的File->BuildSetting->ScriptingDefineSymbols下添加)。编辑器、各手机平台这个宏要分别设置!如果是自动化打包,要注意在代码里头用API设置的宏是不生效的,需要在编辑器设置。 (建议平时开发业务代码不打开HOTFIX_ENABLE,只在build手机版本或者要在编译器下开发补丁时打开HOTFIX_ENABLE) 2、执行XLua/GenerateCode菜单。 3、注入,构建手机包这个步骤会在构建时自动进行,编辑器下开发补丁需要手动执行"XLua/HotfixInjectInEditor"菜单。注入成功会打印“hotfixinjectfinish!”或者“hadinjected!”。 2.内嵌模式默认通过小工具执行代码注入,也可以采用内嵌到编辑器的方式,定义INJECT_WITHOUT_TOOL宏即可。 3.代码实例 在C#代码中我们要将热更新的类添加特性[Hotfi

  • 深入浅出学习决策树(二)

    接着上篇文章深入浅出学习决策树(一)继续介绍决策树相关内容。回归问题中的决策树在预测数值变量时,构造树的想法保持不变,但质量标准会发生变化。平均值的变化其中n是叶子中的样本数,Yi是目标变量的值。简单地说,通过最小化均值周围的方差,我们寻找以这样的方式划分训练集的特征,即每个叶子中的目标特征的值大致相等。例让我们生成一些由函数分配并带有一些噪音的数据。然后我们将在其上训练一棵树并显示它所做的预测。n_train=150 n_test=1000 noise=0.1 deff(x): x=x.ravel() returnnp.exp(-x**2)+1.5*np.exp(-(x-2)**2) defgenerate(n_samples,noise): X=np.random.rand(n_samples)*10-5 X=np.sort(X).ravel() y=np.exp(-X**2)+1.5*np.exp(-(X-2)**2)+\ np.random.normal(0.0,noise,n_samples) X=X.reshape((n_samples,1)) returnX,y X_tr

  • Kotlin Primer·启程

    前言本文是『张涛的Kotlin之旅』,本来很早以前就有很多读者希望我能写一些关于Kotlin的文章,但是由于我本身对Kotlin不熟悉,所以找来了同事张涛的文章,会持续更新一系列Kotlin的文章~欢迎大家关注他的博客——http://kymjs.com/(点击原文链接可以直接访问)KotlinPrimer·第一章·启程Kotlin语言是一种新的静态类型编程语言,可运行于JVM环境同时也能用来开发Android应用。本章为学习和使用这一新兴的语言做准备,并讨论在一些常见开发环境中运行Kotlin程序的方法。1.1Kotlin语言介绍Kotlin是JetBrains在2010年推出的基于JVM的新编程语言。开发者称,设计它的目的是避免Java语言编程中的一些难题。比如:在Kotlin中类型系统控制了空指针引用,可以有效避免Java中常见的NullPointException。 作为一个跨平台的语言,Kotlin可以工作于任何Java的工作环境:服务器端的应用,移动应用(Android版),桌面应用程序。1.2Kotlin的优势相比于Java,Kotlin有着更好的语法结构,安全性和开发工

  • ASM 翻译系列第二十一弹:ASM Attributes Directory

    原作者:BaneRadulovic译者:郭旭瑞审核:魏兴华DBGeeK社群联合出品ASMAttributesDirectoryASM的元数据9号文件,是ASM属性目录,包含了磁盘组的属性信息。属性目录只有在磁盘组的compatible.asm属性设置为11.1或以上时才会存在。直到ASM11.1版本开始,才引入了磁盘组属性的概念,它被用来细粒度的调整磁盘组的属性。有些属性只能在磁盘组创建时指定(如au_size),有些属性可以在任何时候指定(如disk_repair_time)。有些属性保存在磁盘头中(如au_size),有些属性被存储在【成员关系和状态表】中或磁盘头中,这取决于ASM的版本。译者注:成员关系和状态表即partnershipandstatustable的信息请参考本系列的【partnershipandstatustable】篇的详细介绍。Publicattributes大多数属性存放在属性目录并且可以通过查询v$asm_attribute视图获得。我们通过查询这个视图来看下我的所有磁盘组的属性信息:SQL>SELECTg.name"Group"

  • 基于jdk1.7实现的excel导出工具类

    通用excel导出工具类,基于泛型、反射、hashmap以及基于泛型、反射、bean两种方式importjava.io.*; importjava.lang.reflect.Field; importjava.lang.reflect.Method; importjava.text.SimpleDateFormat; importjava.util.*; importorg.apache.poi.hssf.usermodel.*; importorg.slf4j.Logger; importorg.slf4j.LoggerFactory;importjavax.servlet.http.HttpServletResponse;/** *Createdbyliubaofengon2016/7/4. */ publicclassPoiUtil{ privatestaticLoggerlogger=LoggerFactory.getLogger(PoiUtil.class); /** *导出Excel *@paramexcelName要导出的excel名称 *@paramlist要导出的数据

  • 【数据库】事务?隔离级别?LBCC?MVCC?

    MySQL事务之前对事务的了解仅限于知道要么全部执行,要么全部不执行,能背出ACID和隔离级别,知其然但不知其所以然,现在觉得非常有必要系统学一下,关于事务,关于LBCC,关于MVCC,关于死锁……并发的问题所谓事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位,在关系型数据库中,一个事务可以是一条SQL语句,一组SQL语句或者是整个程序,事务的开始和结束由用户显示控制,如果用户没有显式定义事务,则由DBMS按默认规定自动划分事务,如在MySQL中默认autocommit为ON则开启事务自动提交,每条没有显式定义事务的SQL语句都会被当作一个单独的事务并自动提交:mysql>showsessionvariableslike'autocommit'; +---------------+-------+ |Variable_name|Value| +---------------+-------+ |autocommit|ON| +---------------+-------+ 1rowinset,1warning(0.0

  • linux环境下使用jmeter进行压力测试

    linux环境下使用就meter进行压力测试: linux环境部署: 在Linux服务器先安装jdk:2.以jdk-8u172-linux-x64.tar.gz为例:下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 1.根据自己的服务器的机型选择:小编的是64位的,这里就以64位为例: 3.然后把下载tar.gz文件发送到服务器上:这里我们可以使用xshell,连接服务器,同时也要下载xftp来连接服务器,然后通过xftp,把这些对应的文件的文件传到服务器上,对应的xshell,如下是我的云开盘地址,免密码下载;https://pan.baidu.com/s/1bL4fK_UHjHmoEzUo7PDoGw 4.然后安装xshell文件,然后配置对应的服务器的ip,对应用的用户名,密码 5.然后安装xftp,安装成功之后,查看xshell的连接界面,会有一个xftp的图标, 6.此时点击xftp然后点击并且能够看到,左边是自己的本地,右边是服务器的文件,这样就方便用户查看服务器的文件,也可

  • linux安装nginx

    安装依赖 yuminstallgcc复制 yuminstallpcre-devel复制 yuminstallzlibzlib-devel复制 yuminstallopensslopenssl-devel复制 //一键安装上面四个依赖 yum-yinstallgcczlibzlib-develpcre-developensslopenssl-devel复制 下载nginx的tar包 //创建一个文件夹 cd/usr/local mkdirnginx cdnginx //下载tar包 wgethttp://nginx.org/download/nginx-1.13.7.tar.gztar-xvfnginx-1.13.7.tar.g复制 安装nginx //进入nginx目录 cd/usr/local/nginx //执行命令 ./configure复制 //执行make命令 make //执行makeinstall命令 makeinstall复制 Nginx常用命令 //测试配置文件 安装路径下的/nginx

  • MultipartFile转base64

    MultipartFile首先转换成file然后再讲file转换成base64格式复制 publicStringgetBase64String(MultipartFilemultiPartFile)throwsIOException{ StringbaseStr=null; //把MultipartFile转化为File Filefile=newFile(multiPartFile.getOriginalFilename()); FileUtils.copyInputStreamToFile(multiPartFile.getInputStream(),file); try{        //file转base64 FileInputStreaminputStream=newFileInputStream(file); byte[]buffer=newbyte[(int)file.length()]; inputStream.read(buffer); inputStream.close(); baseStr=newBASE64Encoder().encode(buffer);

  • 渗透测试流程

    一般流程 明确目标-->信息收集-->漏洞探测-->漏洞验证-->信息分析-->获取所需-->信息整理-->形成报告 明确目标 在这个阶段中,渗透测试团队和客户组织进行交互讨论,确定渗透测试的范围、目标、限制条件以及服务合同细节。通常设计收集客户的需求、准备测试计划、定义测试范围与边界、定义业务目标、项目管理与规划等活动。选择更加现实可行的渗透测试目标进行实际实施。 渗透测试必须得到客户响应的书面委托和授权!客户书面授权委托同意实施方案是进行渗透测试的必要条件!渗透测试的所有细节和风险的知晓、所有过程都应在客户的控制下进行。 确定范围:测试目标的范围,ip,域名,内外网。 确定规则:能渗透到什么程度,时间?能否修改上传?能否提权等。 确定需求:web应用的漏洞(新上线程序)?业务逻辑漏洞(针对业务的)?人员权限管理漏洞(针对人员、权限)?等等。(立体全方位) 信息收集 信息收集对于渗透测试前期来说是非常重要的!只有我们掌握了目标网站或目标主机足够多的信息,才能更好的进行渗透检测!这块基本就是各种工具直接上。 方式:主动扫描,被动扫描 开放搜

  • ThinkJs笔记琐碎

    记录一些琐碎的在使用ThinkJs遇到的问题 静态资源访问 ThinkJs默认production环境关闭对www下资源的相对路径的访问,官方建议通过nginx转向的地址的绝对路径访问,想要在production环境访问相对路径的话需要到src/config/middleware.js里关闭对静态资源的限制。 线上部署的问题(涉及阿里云的控制台配置) 路径访问始终不对 如果pm2能看到运行状态的进程,还是不能访问的情况考虑以下几点 确保用阿里云公共IP地址访问; 确保当前端口在阿里云开了权限; 如果用nginx代理,保证nginx配置正确;

  • Python实现k-近邻算法案例学习

    一、介绍 你好,我是悦创。 博客首发:https://bornforthis.cn/column/Machine-learning/informal-essay/01.html 本文是由给私教学员cava讲解时编写,主要逻辑没有错误。 k-近邻算法(K-NearestNeighbouralgorithm),又称KNN算法,是数据挖掘技术中原理最简单的算法。 工作原理:给定一个已知标签类别的训练数据集,输入没有标签的新数据后,在训练数据集中找到与新数据最邻近的k个实例,如果这k个实例的多数属于某个类别,那么新数据就属于这个类别。简单理解为:由那些离X最近的k个点来投票决定X归为哪一类。 二、k-近邻算法的步骤 (1)计算已知类别数据集中的点与当前点之间的距离; (2)按照距离递增次序排序; (3)选取与当前点距离最小的k个点; (4)确定前k个点所在类别的出现频率; (5)返回前k个点出现频率最高的类别作为当前点的预测类别。 三、Python实现 判断一个电影是爱情片还是动作片。 电影名称 搞笑镜头 拥抱镜头 打斗镜头 电影类型 0 功夫熊猫 39 0 31 喜剧片

  • ElasticSearch6.0 高级应用之 多字段聚合Aggregation(二)

    ElasticSearch6.0多字段聚合网上完整的资料很少,所以作者经过查阅资料,编写了聚合高级使用例子 例子是根据电商搜索实际场景模拟出来的 希望给大家带来帮助!   下面我们开始吧!   1.创建索引的映射关系 1PUTgome_market 2{ 3"mappings":{ 4"goods":{ 5"dynamic_templates":[ 6{ 7"dynamicFields":{ 8"match_mapping_type":"string", 9"path_match":"dynamicFields.*_sku_attr", 10"mapping":{ 11"type":"keyword" 12} 13} 14} 15], 16"properties":{ 17"id":{ 18"type":"keyword" 19}, 20"category_first_id":{ 21"type":"keyword" 22}, 23"category_first":{ 24"type":"keyword" 25}, 26"category_second_id":{

  • HTML5关于上传API的一些使用(中)

    上一次写了关于HTML的上传API,XMLHttpRequest2.0的上传方式,以及HTML5中上传之前本地的预览,包括对于图片以及部分信息的预 览。这次我们就讲下HTML5中关于上传的一些各种个性化需求的处理,主要包括实时进度条,上传速度的实时显示等。 复制 关于上传事件 首先要做到实时进度条这种需求,首先我们需要得到关于上传的各种事件,这些事件大部分都是在XMLHttpRequest这个对象下面: progress事件:上传进度事件。 load事件:传输成功完成。 abort事件:传输被用户取消。 error事件:传输中出现错误。 loadstart事件:传输开始。 loadEnd事件:传输结束,但是不知道成功还是失败。 其中progress事件分为上传和下载两种情况,上传的时候progress事件实际上是在XMLHttpRequest.upload对象下面,而下载的时候属于XMLHttpRequest对象 关于实时进度条 我们可以在上篇中的方法基础上进行扩展来写实时进度条的方法, varxhr=newXMLHttpRequest(); varformData=newFor

  • 四、自定义图像处理类(附灰度变换)

    自定义图像处理类 一、序言:在图像处理的学习过程中,我们会经常使用到C++中比较著名的一些图像处理库,如OpenCV、OpenGL等。今天,我们就来实现自己的图像处理类MyCV。   二、补充:改教材中的MyCV类是基于前面教程中的MyImage类,构建MyCV时需要关联相应文件   三、今天我们先实现一个简单的图像灰度化方法,更多的图像处理方法会在今后补充。   四、详细步骤 1.方法的定义 staticMyImage*Gray(MyImageconst&Scr);复制   2.方法的实现 // 将图像转换为灰度图像 MyImage*MyCV::Gray(MyImageconst&Scr) { if(Scr.m_format==MyImage::format::GRAY8) returnnewMyImage(Scr); elseif(Scr.m_format==MyImage::format::RGB32) { intwidth=Scr.m_width; intheight=Scr.m_heig

相关推荐

推荐阅读