linux分析java堆栈信息,Linux下获取java堆栈文件并进行分析
当服务器内存飙升或者cpu负载飙升的时候,可以使用如下步骤排查问题:
1、终端输入top命令,键盘大写的情况下按P(cpu负载率从高到低排序)或者M(内存使用率从高到低排序),可以查看导致cpu或者内存飙升的java pid。
2、jstack PID号 > jstack.log
上面的命令可以保存当前时刻的线程栈到 jstack.log 文件中(保存在当前路径下)
3、分析栈文件
3.1 grep 'java.lang.Thread.State' jstack.log | wc -l
上述命令可以统计java.lang.Thread.State出现的次数
3.2 grep -A 1 'java.lang.Thread.State' jstack.log | grep -v 'java.lang.Thread.State' | sort | uniq -c |sort -n
该命令可以将线程栈文件的状态按次数排序显示
4、jmap -dump:format=b,file=heap.log pid
上述命令可以保存当前的堆情况到heap.log文件中。
5、将heap.log传输到windows系统下,复制一份,后缀改成.hprof
下载Eclipse的内存分析工具,地址:https://www.eclipse.org/mat/downloads.php
下载完成后,双击MemoryAnalyzer.exe,点击Open a Heap Dump
选择桌面上的堆文件,点击打开:
选择第一个内存分析报告,然后点Finish:
就会打开一个总体情况页面:
点击左下角的Table Of Contents,里面有多种分析供选择:
每一个选项几乎都有直观的饼状图显示对象的占用情况:
当然也有线程的堆使用情况分析,可以方便地找到占用大量内存的线程,找到真正导致内存、cpu飙升的罪魁祸首!
linux分析java堆栈信息,Linux下获取java堆栈文件并进行分析相关推荐
- Linux登录的shell信息,Linux展示登录Shell信息
Linux显示登录Shell信息 Linux显示登录Shell信息 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ finger -p Login Name T ...
- java打印堆栈信息linux,在C/C++程序里打印调用栈信息(转载)
原文出处 http://blog.csdn.net/yetyongjin/article/details/7759144 以下不能windows + mingw下执行. windows下参考 ht ...
- linux查看输出的信息,linux查看java的输出信息
linux查看java的输出信息 [2021-02-04 22:41:35] 简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(&quo ...
- 获取java异常堆栈信息_Java 实例 - 获取异常的堆栈信息
全屏 Java 实例 - 获取异常的堆栈信息 以下实例演示了使用异常类的 printStack() 方法来获取堆栈信息: Main.java 文件public class Main{ public s ...
- linux修改目录block信息,linux下文件操作inode,block的变化
在"浅谈linux性能调优之三:分区格式化之前的考虑" http://my.oschina.net/sharelinux/blog/143522 一文中我说了inode与bl ...
- linux下查看系统硬件,Linux 查看系统硬件信息 Linux 查看系统硬件信息(实例详解)...
linux查看系统的硬件信息,并不像windows那么直观,这里我罗列了查看系统信息的实用命令,并作了分类,实例解说.html cpu lscpu命令,查看的是cpu的统计信息.linux blue@ ...
- linux保存动态进程信息,Linux 命令 - top: 动态显示进程信息
命令格式 top -hv | -abcHimMsS -d delay -n iterations -p pid [, pid ...] 命令参数 -a 根据内存的使用排序. -b 以批处理模式操作. ...
- linux 怎样查看设备信息,Linux查看设备信息命令
系统 #查看内核/操作系统/CPU信息 uname -a #查看操作系统版本 head -n 1 /etc/issue #查看CPU信息 cat /proc/cpuinfo #查看计算机名 hostn ...
- linux中用截取一些信息,Linux如何使用cut命令截取文件信息
在Linux众多命令中,cut命令可用来截取文件信息,截取Linux字符串,下面将针对cut命令的用法做个详细介绍,感兴趣的朋友可以来学习下. cut命令有截取的意思,可从linux文件或者标准输入中 ...
- linux查看本机信息,linux系统怎么查看本机配置?
linux如何查看系统的硬件配置 如何在linux系统下查看系统配置? 在图形模式下我们可以很方便的利用Linux的图形工具,点击几下就可以查看到Linux系统的的硬件信息.但是大部分生产服务器系统为 ...
最新文章
- 抽象方法和接口的区别
- ip中继对接_鼎信通达MTG系列-语音中继网关,可和VOS,IPPBX,SIP网关进行对接
- IT 部门事件管理模式建立分析
- 08-Windows Server 2012 R2 会话远程桌面-标准部署-使用PowerShell进行部署2-1
- SAP CRM One Order 根据联系人姓名搜索的实现原理
- dw网页制作入学教程_简单的手机网页制作教程
- 从分布式一致性谈到CAP理论、BASE理论
- 6月1日发布!vivo X50外观图曝光:摄像头数量再创新高
- 微课|中学生可以这样学Python(2.3.3节):reduce()函数
- 计算最大值和最小值(分治法)
- [转载] 6.3 cmath--数学函数
- 【OpenCV入门教程之六】 创建Trackbar 图像对比度、亮度值调整(转)
- Android 助力云计算
- 基于大数据可视化技术的毕业生就业分析服务项目 (软件创新设计期末报告)
- C语言里程序编译无误但运行会弹出程序已停止运行是为什么?
- Redhat下7-Zip的安装和使用
- 南丁格尔玫瑰图 python_央视都在用的“南丁格尔玫瑰图”,原来Python也可以画...
- 改善客户服务体验的 5 种方法
- 跟我学c++中级篇——decay
- network 网站流量