top 命令

top 命令查看现在线程占用资料的情况。

第三行,cpu状态信息,具体属性说明如下: us — 用户空间占用CPU的百分比。(重要) sy — 内核空间占用CPU的百分比。 ni — 改变过优先级的进程占用CPU的百分比 id — 空闲CPU百分比 wa — IO等待占用CPU的百分比 hi — 硬中断(Hardware IRQ)占用CPU的百分比 si — 软中断(Software Interrupts)占用CPU的百分比

下面的表示各个线程占用资源的情况,

PID         进程id
USER 进程所有者
PR 进程优先级
NI nice值。负值表示高优先级,正值表示低优先级
VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR 共享内存大小,单位kb
S 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU 上次更新到现在的CPU时间占用百分比
%MEM 进程使用的物理内存百分比 (重要)
TIME+ 进程使用的CPU时间总计,单位1/100秒
COMMAND 进程名称(命令名/命令行)

比如我要查看 java 相关的所有线程占用情况

top -H -p 24334 

使用 jstack 命令打印堆栈工具

jstack是JDK内置的堆栈跟踪工具

 jstack 24334 > jstack.txt 

(6902是Java进程的PID)打印出了Java进程的堆栈信息放到jstack.txt文件了;由于堆栈打印的线程的native id是十六机制的,所以,我把十进制的线程 24340转化成十六进制 5f14

最后,通过

 cat jstack.txt  | grep -C 20 5f14 

jstat 怼内存使用情况

jstat是JDK内置的JVM检测统计工具,可以对** 堆内存的使用情况进行实时统计** 。

上面数值的含义和JVM的参数一一对应

E : Eden区
O : Old区
FGC : Full GC 次数,例子中共 4 次
FGCT : Full GC 的时间,例子共0.2秒左右

这个工具对于查内存泄漏非常有用。这里引用参考资料中的一个内存泄漏例子 :

E(Eden区)跟O(Old区)的内存已经被耗尽了,FGC(Full GC)的次数高达6989次,FGCT(Full GC Time)的时间高达36453秒,即平均每次FGC的时间为:36453/6989 ≈ 5.21秒。也就是说,Java进程都把时间花在GC上了,所以就没有时间来处理其他事情。

jmap 获取进程的内存映射信息

假如真的出现了内存泄漏,那么一定要知道对应的代码在哪里才可以解决问题,就要使用 jmap 工具查出某个线程中内存个映射的对象是哪些。

jmap -histo 24334|less

其中 |less 表示打印的页数慢慢显示而不是一下子刷到最底下。

实例的数量和字节数量,这样就可以进行分析了。

jmap -histo 24334|less|grep sun

其中|grep sun则是进行一个筛选,这个命令加在其他命令后面也一样,可以使用。

参考资料

https://blog.csdn.net/liubin1991liubin/article/details/79702640 https://segmentfault.com/q/1010000003586656

JVM工具使用和Linux-top命令解析的更多相关文章

  1. 【转】Linux Top 命令解析 比较详细

    TOP命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况.   TOP是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户 ...

  2. Linux "top" 命令解析

    TOP命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况.   TOP是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户 ...

  3. Linux Top 命令解析 比较详细

    [尊重原创文章出自:http://www.jb51.net/LINUXjishu/34604.html] TOP是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占 ...

  4. Linux Top 命令解析 比较详细--转

    TOP是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中C ...

  5. linux top命令中各cpu占用率含义

    linux top命令中各cpu占用率含义 [尊重原创文章摘自:http://www.iteye.com/topic/1137848]0.3% us 用户空间占用CPU百分比 1.0% sy 内核空间 ...

  6. (转)详解Linux Top 命令

    top 命令是最流行的性能监视工具之一,我们必需了解.它是一个优秀的交互式工具,用于监视性能.它提供系统整体性能,但报告进程信息才是 top 命令的长处.top 命令交互界面如下图所视:

  7. 新手指南:详解Linux Top 命令

    Linux top命令简介 top 命令是最流行的性能监视工具之一,我们必需了解.它是一个优秀的交互式工具,用于监视性能.它提供系统整体性能,但报告进程信息才是 top 命令的长处.top 命令交互界 ...

  8. (转)linux TOP命令各参数详解【转载】

    实时监控或查看系统资源使用情况的工具——TOP top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. 下面详细介绍它的使用方法: ( ...

  9. (转)linux top命令中各cpu占用率含义及案例分析

    原文:https://blog.csdn.net/ydyang1126/article/details/72820349 linux top命令中各cpu占用率含义 0 性能监控介绍 1 确定应用类型 ...

  10. linux TOP命令各参数详解【转载】

    实时监控或查看系统资源使用情况的工具——TOP top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. 下面详细介绍它的使用方法: ( ...

随机推荐

  1. linux - mysql - 忘记用户名、密码

    1, 关闭mysql服务 /etc/rc.d/init.d/mysqld stop 2,使用 –skip-grant-tables选项启动mysql服务 (1)打开文件 mysqld vi /etc/ ...

  2. jQuery里ready方法用原生js实现原理

    function ready(fn){ if(document.addEventListener){ //标准浏览器 document.addEventListener('DOMContentLoad ...

  3. 【转载】JS导出CSV文件

    转自:http://www.cnblogs.com/dengnan/p/3990211.html 通过自己实际测试有以下几种方法 方法一通过a标签实现,把要导出的数据用“\n”和“,”拼接成一个字符串 ...

  4. Oracle登录报错-ORA-00119

    报错 如果配置监听没有问题了,但是连接时又出现ORA-00119问题: ORA-00119: invalid specification for system parameter LOCAL_LIST ...

  5. 解决安装完Anaconda后右键没有powershell、、、

    法一: win+R 打开资源管理 输入powershell.exe 法二: 额,,按住 shift 再右键...嘿嘿嘿

  6. 微信小程序中的左右联动

    微信小程序端的左右联动-滚动效果插件: 效果图如下:                                                                          ...

  7. git merge代码

    把主干合并进分支 git checkout branch git merge origin/master [一开始我使用的是git merge master,提交代码后发现主干和分支还是有差异,如果不 ...

  8. (转载)设置虚拟机桥接模式以及解决桥接模式上不了网以及ping不通主机的问题

    解决问题的博客地址:设置虚拟机桥接模式以及解决桥接模式上不了网以及ping不通主机的问题 遇见的问题: 1.VMnet8无法设置为桥接模式 结论:只要主机网络可被桥接,VMnet8根本不需要设为桥接模 ...

  9. CSS盒子模型探讨

    盒模型 html文档中的每个元素都被描绘成矩形盒子,这些矩形盒子通过一个模型来描述其占用空间,这个模型称为盒模型.盒模型通过四个边界来描述:margin(外边距),border(边框),padding ...

  10. C++的多态总结(静态&动态)

    什么是多态 顾名思义就是同一个事物在不同场景下的多种形态. 静态多态 我们以前说过的函数重载就是一个简单的静态多态,静态多态是编译器在编译期间完成的,编译器会根据实参类型来选择调用合适的函数,如果有合 ...