JVM基本调优思路和步骤

本文介绍了JVM调优的基本思路和步骤,包括使用JDK自带命令和调优工具Arthas进行诊断。通过一个频繁Full GC的案例,分析了线程池与LinkedBlockingQueue导致的问题,并提出了解决方案,从而避免了长时间Full GC和潜在的OOM风险。
摘要由CSDN通过智能技术生成

JVM基本调优思路和步骤

我们经常会遇到程序平时运行还行,访问高峰期突然卡住的问题,或者程序突然OOM但是不知道从何查起。这个时候我们需要运用到JVM调优的一些思路来解决。

JVM常用调优工具

jdk有各种自带的命令可以用来调优,也可以使用一些调优工具来调优,这些调优工具都是对jdk自带的命令进行的一些封装,能够让显示结果更加直观,让我们使用起来更加的便捷。我们先了解一下最基础的jdk自带命令,之后使用任何调优工具也更简单。

JVM常用调优命令

pid指进程id,tid指线程id
jps: 显示当前所有java进程的进程id(pid)
jstat -gc pid:查看堆中各个区内存使用情况以及yong gc,full gc次数和时间
jmap -histo pid:查看指定进程的内存信息,实例个数以及占用内存大小
jmap -heap pid:查看jvm堆内存配置信息和堆内每个区总内存、已用内存、可用内存大小
jmap -dump:导出堆内存dump文件
jstack pid:查看线程信息
jstack pid|grep -A 10 tid:查看占用cpu最高的线程堆栈信息,此命令需要使用linux top指令查看进程下每个线程的cpu占用情况,windows没有相对应的命令
jinfo -flags pid:查看jvm的参数(配置后可以通过此命令确认参数是否生效)

调优工具Arthas

Arthas 是 Alibaba 在 2018 年 9 月开源的 Java 诊断工具。支持 JDK6+,支持Linux/Mac/Windows, 采用命令行交互模式,可以方便的定位和诊断线上程序运行问题。
Windows系统下载Arthas:

curl -O https://arthas.aliyun.com/arthas-boot.jar

linux系统

wget https://arthas.gitee.io/arthas-boot.jar
或
wget https://alibaba.g
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值