- 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分析线程运行情况
相关推荐
在IT行业中,JVM(Java Virtual Machine)调优和Linux系统操作是两个至关重要的技能,尤其是在处理大型企业级应用时。对于Java开发者来说,理解JVM的工作原理并能进行有效的调优,可以显著提升应用程序的性能和稳定...
jps 工具类似于 Unix/Linux 系统中的 ps 命令,用于列出本地或远程主机上正在运行的所有 Java 进程的 ID 和主类名或 JAR 文件名。这对于识别正在运行的 Java 应用程序非常有用,尤其是当系统中有多个 Java 进程时,...
阿里开源的JVM诊断工具Arthas是一款强大的Java运行时诊断和分析工具,其最新版本为`arthas-packaging-3.6.6`。这款工具旨在帮助开发者在不重启应用的情况下,解决线上问题,进行性能优化,以及深入理解应用程序的...
JVM(Java Virtual Machine)是Java程序运行的基础,它负责解释和执行字节码,管理内存,以及处理线程和类加载。...在实际操作中,应根据具体情况选择合适的工具,以实现高效的问题定位和系统优化。
jProfiler7作为一个强大的Java性能诊断工具,对于任何Linux环境下的Java开发人员来说都是必备的。熟练掌握其使用,可以有效地提升Java应用程序的性能,减少资源浪费,防止内存泄漏,从而提高整体系统的稳定性和效率...
3. **性能监控与诊断工具**:`jconsole`、`jvisualvm` 和 `jmap` 等工具可以帮助我们监控JVM的状态,查看内存占用、线程状态、类加载情况等,为调优提供依据。 4. **JVM编译优化**:JIT(Just-In-Time)编译器将...
IBM HeapAnalyzer是一款强大的Java虚拟机(JVM)内存分析工具,专为诊断和解决Java应用程序的内存泄漏问题而设计。这个工具能够帮助开发者深入理解Java应用程序的内存使用情况,从而优化性能并防止由于内存泄漏导致...
美团在面对JVM问题时,采取了全面的方法来进行问题的定位和排错,既包括了利用成熟的工具集进行监控和诊断,也强调了系统性思考的重要性。通过对问题的细致分析和分类,结合具体的案例实践,可以有效地提高问题解决...
MemoryAnalyzer(MAT)是基于Eclipse的图形化工具,支持Windows、Linux和Mac OS操作系统。它主要通过分析Java应用程序的hprof内存转储文件,为开发者提供内存消耗的详细视图。MAT的功能强大,包括垃圾收集器信息、...
Java虚拟机工具接口(JVM Tool Interface,简称JVM TI)是Java平台提供的一种标准机制,允许外部工具监视和管理正在运行的Java虚拟机。它为开发者提供了丰富的API,可以用来实现诸如性能分析、内存检测、调试等高级...
`-XX:+ShowMessageBoxOnError`参数在Linux环境下启用后,当JVM崩溃时,系统会自动启动GDB进行分析和调试,这对于测试环境尤其有用。 JVM崩溃日志中的关键部分包括: 1. **错误信息概要**:这部分包含致命错误的...
通过上述工具和方法,开发者可以深入理解JVM中各个方法的CPU使用情况,找出性能瓶颈,进一步优化Java代码,提升系统效率。在实际工作中,结合代码审查、JDK监控工具(如JVisualVM、JConsole等)以及其他性能分析手段...
JVM监控工具是Java开发者和运维人员不可或缺的工具,通过这些工具可以监控和诊断Java应用程序的性能和资源使用情况。本文将介绍五种JVM监控工具:jstack、jconsole、jinfo、jmap和jdb。 jstack jstack是一款命令行...
arthas 是 Alibaba 开源的 Java 诊断工具,可以用来在线排查 JVM 的问题。arthas 提供了许多功能,包括: 1. 在线排查:可以在线排查 JVM 的问题,包括线程安全问题、OOM 问题等。 2. JVM 观察:可以观察 JVM 的...
在 JVM 性能监测及调优中,我们需要使用多种工具和方法来监测和优化 JVM 的性能,包括 Linux 命令行工具和 JDK 工具。这可以帮助我们精准地找到背后的原因,并且能够解决内存溢出或内存使用率过高的问题。
MAT不仅仅是一个诊断工具,它还能提供优化建议,比如如何减少对象的生命周期,优化数据结构,以及调整JVM参数以改善内存性能。 在实际使用中,MAT通常配合JDK自带的`jmap`命令来获取dump文件。例如,使用`jmap -...
Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。 当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决: 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到...
JVM性能监控和分析工具是Java开发者在进行性能调优和故障排查时不可或缺的帮手。JVM(Java虚拟机)提供了多种内置的工具以及支持第三方工具,以监控和分析Java应用程序的运行状态和性能指标。这些工具能够帮助开发者...