当前位置: 首页 > news >正文

Java性能问题排查

1. Java 性能排查

  1. 使用JPS查看当前Java进程

    jps #查询需要排查的Java进程ID
    
  2. 查看Java进程内最耗费CPU的线程资源使用情况

    top -H -p <Java进程pid>ps -Lfp <Java进程pid>ps -mp <Java进程pid> -o THREAD, tid, time
  3. 根据第1步查询出的PID,通过jstack查询Java线程所对应的jstack的Java线程ID(需要将十进制转化为十六进制)

    1. printf "%x\n" <Java进程pid> #获取十六进制值
    2. jstack <Java进程pid> | grep nid=0x<Java线程ID>
    

2. Java常用性能排查命令

  1. jmap

    Jmap是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。

    • 使用方法jmap -histo pid展示class的内存情况

    • 如果使用SHELL ,可采用jmap -histo <pid> > a.log日志将其保存到文件中,在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。

    • 使用jmap -dump:live,format=b,file=outfile <pid> 可以将<pid>进程的内存heap输出出来到outfile文件里,再配合MAT(内存分析工具)。

    • 64位服务器或主机上使用需要使用如下方式:jmap -J-d64 -heap pid

      • jmap [ option ] pid
      • jmap [ option ] executable core
      • jmap [ option ] [server-id@]remote-hostname-or-IP
    • 使用jmap -permstat <pid>打印进程的类加载器和类加载器加载的持久代对象信息,输出:类加载器名称、对象是否存活(不可靠)、对象地址、父类加载器、已加载的类大小等信息;

    • 使用jmap -heap <pid>查看进程堆内存使用情况,包括使用的GC算法、堆配置参数和各代中堆内存使用情况。

  2. jstat

    1. 语法

      jstat [ generalOption | outputOptions vmid [interval[s|ms] [count]] ]

      • vmid是虚拟机ID,在Linux/Unix系统上一般就是进程ID
      • interval是采样时间间隔
      • count是采样数目
    2. 用法

      • jstat -gc pid #主要查看FGC、YGC的总次数和累计耗时
      • jstat -gcutil pid #功能和gc 一样,但是是百分比的形式,读取更友好
      • jstat -gccapacity pid #读取各个代区的当前容量、最大容量、当前使用量等信息
    3. 示例

      例如下面输出的是GC信息,采样时间间隔为250ms,采样数为4:

      jstat -gc 21711 250 4
      

相关文章:

  • 上传视频报错 413 Request Entity Too Large
  • 【动手学深度学习】3.5. 图像分类数据集
  • Python 高级主题与性能优化指南
  • 体系结构论文(八十六):The Dark Side ofComputing: SilentData Corruptions
  • C++ —— STL容器 —— string的模拟实现
  • 北京大学:AI+Agent与Agentic+AI的原理与应用(适合科研从业者和技术爱好者阅读)
  • 功能测试—软件的生命周期
  • 单 exe 截图软件:ScreenCapture 2.3.1 发布
  • 包含各种扁平化UI套件的psd适用于博客电商类移动端网站项目
  • 搭建前端项目 Vue+element UI引入 步骤 (超详细)
  • Linux 系统设置时区
  • Flask应用中处理异步事件(后台线程+事件循环)的方法(2)
  • 一个完整的LSTM风光发电预测与并网优化方案,包含数据处理、模型构建、训练优化、预测应用及系统集成实现细节
  • 2025软件测试面试题汇总(接口测试篇)
  • Kubernetes安全机制深度解析(四):动态准入控制和Webhook
  • 成都鼎讯短波通信信号模拟设备:短波频段的电磁模拟王者​
  • visual studio2019+vcpkg管理第三方库
  • 谷歌具身智能VLA大模型 —— Gemini Robotics : 将人工智能带入到物理世界
  • CLONE——面向长时任务的闭环全身遥操:其MoE架构可实现“蹲着走”,且通过LiDAR里程计和VR跟踪技术解决位置偏差问题
  • 数字孪生之KTV洗脚城白皮书:娱乐产业的虚实融合革命
  • 利用分类信息网站做推广/产品推广渠道有哪些
  • 网站的关键词/关键词拓展工具有哪些
  • 公司建设的网站属于无形资产吗/西安百度网站快速优化
  • 怎么做卖车网站/sem推广是什么
  • 网站用什么图片格式好/网络推广公司是干嘛的
  • 宣武做网站/网络销售怎么聊客户