linux java 查找进程中的线程

这里对linux下、sun(oracle) JDK的线程资源占用问题的查找步骤做一个小结;
linux环境下,当发现java进程占用CPU资源很高,且又要想更进一步查出哪一个java线程占用了CPU资源时,按照以下步骤进行查找:
(一):通过【 top -p12377 -H】 查看java进程的有哪些线程的运行情况;
      和通过【jstack 12377 > stack.log】生成Java线程的dump详细信息;
    1. 先用top命令找出占用资源厉害的java进程id,如图:# top
    2. 如上图所示,java的进程id为’52554′,接下来用top命令单独对这个进程中的所有线程作监视:
  1. 1top -p52554 -H

    #  top视图里面里面可以通过快捷键依次b ,x高亮显示top的列找出需要的线程,默认CPU排序,Shift+< ,Shift+>可以左右移动高亮排序的列;

    如图:(这时就看出来哪个java线程CPU高,哪个线程内存用的多)

  2. 如上图所示,linux下,所有的java内部线程,其实都对应了一个进程id,也就是说,linux上的sun jvm将java程序中的线程映射为了操作系统进程;我们看到,占用CPU资源最高的那个进程id是’15417′,这个进程id对应java线程信息中的’nid’(‘n’ stands for ‘native’);
  3. (1)要想找到到底是哪段具体的代码占用了如此多的资源,先使用jstack打出当前栈信息到一个文件里, 比如stack.log:
  4. python -c"print hex(9757)"然后记住二进制的号
  5. cat stack.log|grep 二进制的号
  6. 1

    jstack 52554 > stack.log

    然后使用’jtgrep’脚本把这个进程号为’9757′的java线程在stack.log中抓出来:

    1jtgrep 9757 stack.log

    其中,’jtgrep’是自己随便写的一个shell脚本:

    1#!/bin/sh
    3nid=`python -c"print hex($1)"`
    4grep -i $nid $2

    道理很简单,就是 把’9757′转换成16进制后,直接grep stack.log;可以看到,被grep出的那个线程的nid=0x3c39,正好是15417的16进制表示。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/388008.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

定位匹配 模板匹配 地图_什么是地图匹配?

定位匹配 模板匹配 地图By Marie Douriez, James Murphy, Kerrick Staley玛丽杜里兹(Marie Douriez)&#xff0c;詹姆斯墨菲(James Murphy)&#xff0c;凯里克史塔利(Kerrick Staley) When you request a ride, Lyft tries to match you with the driver most suited for your…

Sprint计划列表

转载于:https://www.cnblogs.com/zhs20160715/p/9953586.html

MySQL学习【第十二篇事务中的锁与隔离级别】

一.事务中的锁 1.啥是锁&#xff1f; 顾名思义&#xff0c;锁就是锁定的意思 2.锁的作用是什么&#xff1f; 在事务ACID的过程中&#xff0c;‘锁’和‘隔离级别’一起来实现‘I’隔离性的作用 3.锁的种类 共享锁&#xff1a;保证在多事务工作期间&#xff0c;数据查询不会被阻…

Android WebKit

这段时间基于项目需要 在开发中与WebView的接触比较多&#xff0c;前段时间关于HTML5规范尘埃落定的消息出现在各大IT社区头版上&#xff0c;更有人说&#xff1a;HTML5将颠覆原生App开发 虽然我不太认同这一点 但是关于HTML5JSCSSNative的跨平台开发模式还是为很多企业节省了开…

jQuery的事件绑定和解绑

1、绑定事件 语法&#xff1a; bind(type,data,fn) 描述&#xff1a;为每一个匹配元素的特定事件&#xff08;像click&#xff09;绑定一个事件处理器函数。 参数解释&#xff1a; type (String) : 事件类型 data (Object) : (可选) 作为event.data属性值传递给事件对象的额外数…

软件测试框架课程考试_那考试准备课程值得吗?

软件测试框架课程考试By Levi Petty李维佩蒂(Levi Petty) This project uses a public, synthesized exam scores dataset from Kaggle to analyze average scores in Math, Reading, and Writing subject areas, relative to the student’s parents’ level of education an…

开博第一天

开博第一天 纪念一下 转载于:https://www.cnblogs.com/yang-9654/p/9959388.html

GitLab 11.9 正式发布,自动化工具 ChatOps 已开源

GitLab 11.9 已正式发布&#xff0c;该版本新增了两个和安全相关的特性&#xff0c;一是快速检查私密信息是否泄漏&#xff0c;从该版本起在 CI/CD 过程中会扫描开发者提交的信息是否包含私密内容&#xff0c;有的话会在合并 PR 时向开发者发送警报&#xff1b;二是改进了合并 …

DOCKER windows安装

DOCKER windows安装 DOCKER windows安装 1.下载程序包2. 设置环境变量3. 启动DOCKERT4. 分析start.sh5. 利用SSH工具管理6. 下载镜像 6.1 下载地址6.2 用FTP工具上传tar包6.3 安装6.4 查看镜像6.5 运行 windows必须是64位的 1.下载程序包 安装包 https://github.com/boot2doc…

为什么在Python代码中需要装饰器

Python is praised for its clarity and syntactic sugariness. In this article, I will teach you to use decorators in Python to make your code readable and clean.Python的清晰性和语法含糖度受到赞誉。 在本文中&#xff0c;我将教您在Python中使用装饰器&#xff0c;…

Elasticsearch Reference [6.7] » Modules » Network Settings

2019独角兽企业重金招聘Python工程师标准>>> Search Settings Node Network Settingsedit Elasticsearch binds to localhost only by default. This is sufficient for you to run a local development server (or even a development cluster, if you star…

【百度】大型网站的HTTPS实践(一)——HTTPS协议和原理

大型网站的HTTPS实践&#xff08;一&#xff09;——HTTPS协议和原理 原创 网络通信/物联网 作者&#xff1a;AIOps智能运维 时间&#xff1a;2018-11-09 15:07:39 349 0前言 百度于2015年上线了全站HTTPS的安全搜索&#xff0c;默认会将HTTP请求跳转成HTTPS。从今天开始&…

数据清理最终实现了自动化

苹果 | GOOGLE | 现货 | 其他 (APPLE | GOOGLE | SPOTIFY | OTHERS) Editor’s note: The Towards Data Science podcast’s “Climbing the Data Science Ladder” series is hosted by Jeremie Harris. Jeremie helps run a data science mentorship startup called Sharpest…

mui 与jquery 同时使用,$冲突解决办法。

(function($,doc,$$) { 。。。。。 }(mui, document, jQuery)); 使用$$代替jQuery。 var $$jQuery.noConflict();此方法也可以 转载于:https://www.cnblogs.com/mustanglqt/p/10608499.html

LVS原理介绍及安装过程

一、ARP技术概念介绍 为什么讲ARP技术&#xff0c;因为平常工作中有接触。还有就是LVS的dr模式是用到arp的技术和数据。 1、什么是ARP协议 ARP协议全程地址解析协议&#xff08;AddressResolution Protocol&#xff0c;ARP&#xff09;是在仅知道主机的IP地址时确定其物理地…

Python气流介绍

This is a memo to share what I have learnt in Apache Airflow, capturing the learning objectives as well as my personal notes. The course is taught by Mike Metzger from DataCamp.这是一份备忘录&#xff0c;旨在分享我在Apache Airflow中学到的知识&#xff0c;记录…

java~springcloud微服务目录索引

回到占占推荐博客索引 最近写了不过关于java&#xff0c;spring&#xff0c;微服务的相关文章&#xff0c;今天把它整理一下&#xff0c;方便大家学习与参考。 java~springcloud微服务~目录索引 springcloud~服务注册与发现Eureka的使用 springcloud~配置中心的使用 springclou…

DNS Bind9在windows7下

有些公司技术力量薄弱一些&#xff0c;一直在用windows系统&#xff0c;所以本文从windows出发&#xff0c;安装bind&#xff0c;利用它的view功能&#xff0c;做智能DNS&#xff0c;解决双线机房南北电信联通访问问题前言&#xff1a; 搞LINUX的朋友都知道&#xff0c;bind是l…

正确的词典访问方式

unity3d 词典访问Python字典指南 (Python Dictionary Guide) The dictionary is one of the data structures that are ready to use when programming in Python.字典是使用Python进行编程时可以使用的数据结构之一。 在我们开始之前&#xff0c;什么是字典&#xff1f; (Bef…

Vue.js(5)- 全局组件

全局组件 定义组件的语法 Vue.component(组件的名称, { 组件的配置对象 }) 在组件的配置对象中&#xff1a;可以使用 template 属性指定当前组件要渲染的模板结构&#xff1b; 使用组件的语法 把 组件的名称, 以标签的形式&#xff0c;引入到页面上就行&#xff1b; // 导入v…