`
xtuhcy
  • 浏览: 142262 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

linux和jvm系统诊断工具

阅读更多
  • uptime

09:20:31 up 84 days, 17:55,  3 users,  load average: 25.34, 10.29, 4.36

Load Average 就是一段时间(1分钟、5分钟、15分钟)内平均Load

 

  • vmstat

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------

 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st

 1  0 916560 586560 141088 747096    1    1     5    13    1    0  7  1 92  0  0

 

Procs(进程):

r: 运行队列中进程数量

b: 等待IO的进程数量

Memory(内存):

swpd: 使用虚拟内存大小

free: 可用内存大小

buff: 用作缓冲的内存大小

cache: 用作缓存的内存大小

Swap:

si: 每秒从交换区写到内存的大小

so: 每秒写入交换区的内存大小

IO:(现在的Linux版本块的大小为1024bytes)

bi: 每秒读取的块数

bo: 每秒写入的块数

系统:

in: 每秒中断数,包括时钟中断。

cs: 每秒上下文切换数。

CPU(以百分比表示):

us: 用户进程执行时间(user time)

sy: 系统进程执行时间(system time)

id: 空闲时间(包括IO等待时间)

wa: 等待IO时间

 

r 如果长期大于1,说明cpu不足,需要增加cpu。

wa 列显示了IO等待所占用的CPU时间的百分比。这里wa的参考值为30%,如果wa超过30%,说明IO等待严重,这可能是磁盘大量随机访问造成的,也可能磁盘或者磁盘访问控制器的带宽瓶颈造成的(主要是块操作)。

 

  • jstat(java虚拟机的内存使用情况)

 

jstat -option(查看哪项监控的指标)
-class 显示加载class的数量,及所占空间等信息
-compiler 显示VM实时编译的数量等信息
-gc 可以显示gc的信息,查看gc的次数,及时间
-gccapacity VM内存中三代(young,old,perm)对象的使用和占用大小
-gccause
-gcnew new对象的信息
-gcnewcapacity new对象的信息及其占用量
-gcold old对象的信息
-gcoldcapacity old对象的信息及其占用量
-gcpermcapacity perm对象的信息及其占用量
-gcutil
-printcompilation

如:jstat -gc 8672
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       PC     PU    YGC     YGCT    FGC    FGCT     GCT   
63104.0 65152.0  0.0   3906.9 379712.0 102135.8  699072.0   279404.1  262144.0 95494.6     39    2.000   2      1.027    3.027
 
  • jstack(用来查看某个Java进程内的线程堆栈信息

 

jstack pid
可以用来定位最占cpu的java线程正在执行的类
1.jps定位java进程
8672 Bootstrap
2.top -Hp pid定位最占cpu的线程
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                    
 8672 jakarta   15   0 2981m 1.3g 9288 S  0.0 16.4   0:00.00 java                                                                                                       
 8677 jakarta   15   0 2981m 1.3g 9288 S  0.0 16.4   0:01.41 java                                                                                                       
 8678 jakarta   16   0 2981m 1.3g 9288 S  0.0 16.4   0:01.69 java                                                                                                          
3.获得线程id的十六进制码
printf '%x' 8672
21e0
4.jstack pid | grep 21e0

 

 

 

  • jmap

 

jmap option pid
最常用的是查看当前存活对象占用内存的情况。
如:jmap -histo:live > jmap.log
um     #instances         #bytes  class name
----------------------------------------------
   1:       1092436       61273432  [C
   2:       1101637       44065480  java.lang.String
   3:        542083       26019984  java.util.HashMap$Entry
   4:        148975       20884952  <constMethodKlass>
   5:        148975       17888424  <methodKlass>
   6:         27763       16417688  [B
   7:         13671       15051640  <constantPoolKlass>
   8:        526052       12625248  java.lang.Integer
   9:         13671       10527656  <instanceKlassKlass>
  10:         17970       10056176  [Ljava.util.HashMap$Entry;

也可以用来dump整个jvm,之后用visualVM等工具分析
 

 jstat分析jvm内存基本情况

 jmap分析jvm对象占用情况

 jstack分析线程运行情况

分享到:
评论

相关推荐

    JVM调优和Linux常见面试题.zip

    在IT行业中,JVM(Java Virtual Machine)调优和Linux系统操作是两个至关重要的技能,尤其是在处理大型企业级应用时。对于Java开发者来说,理解JVM的工作原理并能进行有效的调优,可以显著提升应用程序的性能和稳定...

    jvm内存监控工具使用

    jps 工具类似于 Unix/Linux 系统中的 ps 命令,用于列出本地或远程主机上正在运行的所有 Java 进程的 ID 和主类名或 JAR 文件名。这对于识别正在运行的 Java 应用程序非常有用,尤其是当系统中有多个 Java 进程时,...

    开源阿里JVM诊断工具最新版arthas-packaging-3.6.6

    阿里开源的JVM诊断工具Arthas是一款强大的Java运行时诊断和分析工具,其最新版本为`arthas-packaging-3.6.6`。这款工具旨在帮助开发者在不重启应用的情况下,解决线上问题,进行性能优化,以及深入理解应用程序的...

    jvm监控工具介绍

    JVM(Java Virtual Machine)是Java程序运行的基础,它负责解释和执行字节码,管理内存,以及处理线程和类加载。...在实际操作中,应根据具体情况选择合适的工具,以实现高效的问题定位和系统优化。

    jProfiler7 java内存分析 linux版本

    jProfiler7作为一个强大的Java性能诊断工具,对于任何Linux环境下的Java开发人员来说都是必备的。熟练掌握其使用,可以有效地提升Java应用程序的性能,减少资源浪费,防止内存泄漏,从而提高整体系统的稳定性和效率...

    系统和JVM调优(面试突击)

    3. **性能监控与诊断工具**:`jconsole`、`jvisualvm` 和 `jmap` 等工具可以帮助我们监控JVM的状态,查看内存占用、线程状态、类加载情况等,为调优提供依据。 4. **JVM编译优化**:JIT(Just-In-Time)编译器将...

    ibm HeapAnalyzer JVM内存分析工具 ha457.jar下载

    IBM HeapAnalyzer是一款强大的Java虚拟机(JVM)内存分析工具,专为诊断和解决Java应用程序的内存泄漏问题而设计。这个工具能够帮助开发者深入理解Java应用程序的内存使用情况,从而优化性能并防止由于内存泄漏导致...

    美团JVM问题定位和排错

    美团在面对JVM问题时,采取了全面的方法来进行问题的定位和排错,既包括了利用成熟的工具集进行监控和诊断,也强调了系统性思考的重要性。通过对问题的细致分析和分类,结合具体的案例实践,可以有效地提高问题解决...

    MemoryAnalyzer JVM堆内存分析工具

    MemoryAnalyzer(MAT)是基于Eclipse的图形化工具,支持Windows、Linux和Mac OS操作系统。它主要通过分析Java应用程序的hprof内存转储文件,为开发者提供内存消耗的详细视图。MAT的功能强大,包括垃圾收集器信息、...

    JVM TI监控JAVA执行过程

    Java虚拟机工具接口(JVM Tool Interface,简称JVM TI)是Java平台提供的一种标准机制,允许外部工具监视和管理正在运行的Java虚拟机。它为开发者提供了丰富的API,可以用来实现诸如性能分析、内存检测、调试等高级...

    jvm crash的崩溃日志详细分析及注意点

    `-XX:+ShowMessageBoxOnError`参数在Linux环境下启用后,当JVM崩溃时,系统会自动启动GDB进行分析和调试,这对于测试环境尤其有用。 JVM崩溃日志中的关键部分包括: 1. **错误信息概要**:这部分包含致命错误的...

    查看jvm进程的cpu火焰图工具

    通过上述工具和方法,开发者可以深入理解JVM中各个方法的CPU使用情况,找出性能瓶颈,进一步优化Java代码,提升系统效率。在实际工作中,结合代码审查、JDK监控工具(如JVisualVM、JConsole等)以及其他性能分析手段...

    JVM监控工具介绍jstack_jconsole_jinfo_jmap_jdb_jstat

    JVM监控工具是Java开发者和运维人员不可或缺的工具,通过这些工具可以监控和诊断Java应用程序的性能和资源使用情况。本文将介绍五种JVM监控工具:jstack、jconsole、jinfo、jmap和jdb。 jstack jstack是一款命令行...

    对JVM调优的总结经验.docx

    arthas 是 Alibaba 开源的 Java 诊断工具,可以用来在线排查 JVM 的问题。arthas 提供了许多功能,包括: 1. 在线排查:可以在线排查 JVM 的问题,包括线程安全问题、OOM 问题等。 2. JVM 观察:可以观察 JVM 的...

    JVM性能监测及调优实战

    在 JVM 性能监测及调优中,我们需要使用多种工具和方法来监测和优化 JVM 的性能,包括 Linux 命令行工具和 JDK 工具。这可以帮助我们精准地找到背后的原因,并且能够解决内存溢出或内存使用率过高的问题。

    MemoryAnalyzer-JVM

    MAT不仅仅是一个诊断工具,它还能提供优化建议,比如如何减少对象的生命周期,优化数据结构,以及调整JVM参数以改善内存性能。 在实际使用中,MAT通常配合JDK自带的`jmap`命令来获取dump文件。例如,使用`jmap -...

    是Alibaba开源的Java诊断工具

    Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。 当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决: 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到...

    JVM-Tunning-Tools-Introduction

    JVM性能监控和分析工具是Java开发者在进行性能调优和故障排查时不可或缺的帮手。JVM(Java虚拟机)提供了多种内置的工具以及支持第三方工具,以监控和分析Java应用程序的运行状态和性能指标。这些工具能够帮助开发者...

Global site tag (gtag.js) - Google Analytics