JVM 性能调优之 jps

 2022-08-24
原文地址:https://cloud.tencent.com/developer/article/2025166

大家好!我是老码农,一个喜欢技术、爱分享的同学,从今天开始和大家持续分享JVM调优方面的经验。

JVM调优是个大话题,涉及的知识点很庞大

  • Java内存模型
  • 垃圾回收机制
  • 各种工具使用
  • 参数配置
  • 调优指标设置
  • ...

所以会是个持续分享的活,急不得。感兴趣的同学,我们一起学习,攻下JVM调优这座山头。

今日分享主题

JDK的bin目录下提供了很多和Java相关的小工具,后面会陆续分享提供的这些工具。

例如:

  • 服务器上跑着那些Java的服务呢?如何查找Java服务进程呢?

刚才说的这个话题,其实就是查找服务器上启动着哪些Java进程,jps命令就该出场了

jps

  • JVM Process Status Tool的简写,虚拟机状态查询工具
  • JDK1.5提供查看当前系统Java进程的命令
  • 位置:Java安装目录:bin下面

官方文档

  • Java 8

    • https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jps.html
  • Java 14

    • https://docs.oracle.com/en/java/javase/14/docs/specs/man/jps.html

功能

  • 列出正在执行的JVM进程PID及进程启动的参数信息

语法

    usage: jps [-help]
           jps [-q] [-mlvV] [<hostid>]
    
    Definitions:
        <hostid>:      <hostname>[:<port>]

参数列表

参数 说明
-q 只显示进程pid
-m 显示主函数
-l 显示完整的package路径及jar文件
-v 显示JVM启动时的JVM参数

使用范例

  • 查看帮助
    C:\Users\Administrator>jps -help
    usage: jps [-help]
           jps [-q] [-mlvV] [<hostid>]
    
    Definitions:
        <hostid>:      <hostname>[:<port>]
  • 显示进程ID和main函数
    C:\Users\Administrator>jps
    21136 RemoteMavenServer36
    8160 Launcher
    25492 Jps
    27704 RemoteMavenServer36
    27784 RemoteMavenServer36
  • 只显示进程PID:-q
    C:\Users\Administrator>jps -q
    21136
    8160
    27704
    27784
    18284
    26668
    27708
  • 显示JVM启动参数:-v
    C:\Users\Administrator>jps -v
    21136 RemoteMavenServer36 
    -Djava.awt.headless=true -
    Dmaven.defaultProjectBuilder.disableGlobalModelCache=true -Didea.version=2021.2.3 
    -Didea.maven.embedder.version=3.6.3 -Xmx768m 
    -Dmaven.ext.class.path=C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.2.3\plugins\maven\lib\maven-event-listener
    .jar -Dfile.encoding=GBK

组合使用:-mlv