linux查看java堆栈信息_Java运行状态分析2:获取线程堆栈信息
Java运行状态分析2:获取线程堆栈信息
基本概念
出现内存泄漏或者运行缓慢场景,有时候无法直接从业务日志看出问题时候,需要分析jvm内存和线程堆栈
线程堆栈信息主要记录jvm线程在某时刻线程执行情况,分析线程状态可以跟踪到程序出问题的地方
内存堆栈信息主要记录jvm堆中在某时刻对象使用情况,主要用于跟踪是哪个对象占用了太多的空间,从而跟踪导致内存泄漏的地方
跟踪线程信息
查看当前线程数量
actuator
1.x
http://host:port/metrics/threads //当前进程的线程数
http://host:port/metrics/threads.daemon //当前进程后台驻留线程数
http://host:port/metrics/threads.peak //当前进程线程数峰值
2.x
http://host:port/actuator/metrics/jvm.threads.daemon //当前进程后台驻留线程数
http://host:port/actuator/metrics/jvm.threads.live //当前进程的线程数
http://host:port/actuator/metrics/jvm.threads.peak //当前进程线程数峰值
sop hystrix 线程状态
http://host:port/sys/hystrix/threads
linux
ps huH p {pid}|wc -l
jstack生成线程堆栈
当服务cup飙升或者出问题需要从主机层面定位时候,使用top -c 命令查看对应哪个进程占用了过高资源
找到资源占用高的进程
明确需要定位的进程通过如下命令找到对应的进程id
ps aux|grep {application alias}
接下来通过jstack导出对应的线程堆栈
jstack 对应参数如下
-m to print both java and native frames (mixed mode)
-l long listing. Prints additional information about locks
可以通过如下命令定位具体高load线程:
查询进程具体哪个线程占用高load
top -Hp {进程pid}
thread id为十六进制格式转十六进制值
printf %x {线程pid}
指定特定行数堆栈信息
jstack {进程id}|grep -A 200 {线程id}
服务器线程相对较多,文件大小较大,一般不会考虑在服务器看,另外这样查也会导致忽略了一些统计信息
通过如下命令导出文件,下载到本地查
jstack -l {pid} >> {dump-file-path}
如何查看分析dump文件,请看下文
linux查看java堆栈信息_Java运行状态分析2:获取线程堆栈信息相关推荐
- linux查看输出的信息,linux查看java的输出信息
linux查看java的输出信息 [2021-02-04 22:41:35] 简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(&quo ...
- linux如何看java安装路径,linux查看java的安装路径
linux查看java的安装路径 [2021-02-05 21:28:47] 简介: 服务器 一.查看软件安装路径: Linux软件安装的地方不止一个地方,先说查看软件安装的所有路径(地址). 这里 ...
- 查看linux java目录,linux 查看java安装目录
linux 查看java安装目录 [2021-02-01 05:02:25] 简介: linux查看php安装目录的方法:1.Linux的php安装目录在没有设置自定义安装的情况下,一般默认的安装路 ...
- linux查看java版本,以及java home的位置
linux查看java版本,以及java home的位置 1.确定是否安装jdk java -version 2.查找java home的位置: vi /etc/profile
- new,is和as运算符解析及运行时类型,对象,线程堆栈,托管堆之间的联系
CLR要求对象必须使用new运算符创建,在使用new运算符创建一个对象时具体都做了些什么呢? 1.计算所有定义的实例字段,所有的基类型包括System.Object需要分配的字节数. 每一个堆上的对象 ...
- linux查看java虚拟机内存_JVM:查看java内存情况命令
jmap (linux下特有,也是很常用的一个命令) 观察运行中的jvm物理内存的占用情况. 参数如下: -heap :打印jvm heap的情况 -histo: 打印jvm heap的直方图.其输出 ...
- linux 查看java进程_Linux进程查看及管理工具(ps, vmstat, dstat, glances等)
pstree pstree - display a tree of processes , 进程树查看. [root@localhost /]# pstree systemd─┬─agetty├─au ...
- linux 查看java cpu_Linux查看CPU和内存使用情况
在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要.在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况.运行 top 命令后,CPU 使用状态会 ...
- linux查看java版本_linux 查看java版本
inux查看java jdk安装路径和设置环境变量 windows: set java_home:查看JDK安装路径 java -version:查看JDK版本 linux: whereis java ...
最新文章
- python用matplotlib画人口图_Python+Matplotlib画contour图
- [Codeforces Round #254 div1] C.DZY Loves Colors 【线段树】
- 解决后台json数据返回的字段需要替换的问题
- 用css及jQuery实现的精美拉下菜单导航条
- node 后台重定向_node.js – 使用NodeJS重定向客户端并重新定义
- vb还是python强大-最难学的七大编程语言,VB 第一,Python垫底,看你学的排第几...
- C语言判断素数的几种方法
- foremost文件删除恢复
- java8进制转换_Java进制转换方法大全_十进制,八进制,二进制,十六进制转换...
- DP POJ1160
- 腾讯云“黑石”真相——“物理私服”
- netty源码阅读之编码之flush刷新buffer队列
- VDI、IDV、VOI、RDS四种类型云桌面的区别
- 钉钉申请发起后台提现接口
- 如何使用轻量应用服务器搭建高颜值的YesPlayMusic网易云播放器
- eclipse配置python运行环境_Eclipse配置Python环境
- 二、数码管显示原理及应用实现
- 初识mysql实验小结_初识mysql学习笔记
- 【好记性不如烂笔头】二叉树之利用先序中序还原树
- 《C语言内涵教程》前言