特定PID的Java选项

时间:2016-06-01 11:04:47

标签: java apache tomcat

我正在使用

java version "1.7.0_85"
OpenJDK Runtime Environment (IcedTea 2.6.1) (7u85-2.6.1-5ubuntu0.14.04.1)
OpenJDK 64-Bit Server VM (build 24.85-b03, mixed mode)

目前要查看JVM选项值,我使用的是以下命令 java -XX:+ PrintFlagsFinal -version 它打印大约720个值 我知道这些值的含义以及它们分配的类型

但是,现在我想知道是否可以看到已启动特定java进程的JAVA选项(正在运行的进程的JAVA选项)

如果有任何可以提供我可以获得的详细信息。

提前致谢:)

2 个答案:

答案 0 :(得分:1)

我不知道如何使用任何JDK工具(例如jcmd)获取此类信息。

因此,您可以使用attach api自行编码,也可以使用工具。

可能的方法是使用jvm-tools(a.k.a.瑞士爪哇刀)。

  1. 获取其他进程的pid

    jcmd -l
    12345 sun.tools.jcmd.JCmd -l
    6789  the.process.you.are.looking.for
    
  2. 使用sjk获取YoungPLABSize

    的值
    java -jar sjk.jar mx \
       -p 6789 \
       -mc \
       -b com.sun.management:type=HotSpotDiagnostic \
       -op getVMOption \
       -a YoungPLABSize
    
  3. 可能的输出

    com.sun.management:type=HotSpotDiagnostic
    name:      YoungPLABSize
    origin:    DEFAULT
    value:     4096
    writeable: false
    

答案 1 :(得分:0)

实际上我找到了我需要的东西

我可以使用以下命令

ps aux | grep java 它给出了以下答案(包括所有已通过的选项)

andrews + 4940 1.1 16.9 4217936 1365804? Sl May30 37:08 / usr / bin / java -Xincgc -Xss500k -Dosgi.requiredJavaVersion = 1.6 -Xms512m -Xmx1024m -XX:NewSize = 8m -XX:PermSize = 128m -XX:MaxPermSize = 150m -XX:MaxPermHeapExpansion = 10m - XX:+ UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction = 70 -XX:+ UseCMSInitiatingOccupancyOnly -XX:+ UseParNewGC -XX:ParallelGCThreads = 2 -XX:+ CMSIncrementalPacing -XX:CMSIncrementalDutyCycleMin = 0 -XX:CMSIncrementalDutyCycle = 5 -XX:GCTimeRatio = 49 - XX:MaxGCPauseMillis = 20 -XX:+ UseCMSCompactAtFullCollection -XX:+ CMSClassUnloadingEnabled -XX:+ AggressiveOpts -Xverify:none -Dosgi.instance.area=@user.dir/Djava.net.preferIPv4Stack=true -jar / home / local /下载/ eclipse / plugins / org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar -os linux -ws gtk -arch x86_64 -showsplash -launcher / home / local / Downloads / eclipse / eclipse -name Eclipse --launcher .library /home/local/Downloads/eclipse/plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20140603-1326/eclipse_1605.so -startup / home / local / Downloads / eclipse / plug ins / org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar --launcher.overrideVmargs -exitdata 32000d -vm / usr / bin / java -vmargs -Xincgc -Xss500k -Dosgi.requiredJavaVersion = 1.6 -Xms512m -Xmx1024m - XX:NewSize = 8m -XX:PermSize = 128m -XX:MaxPermSize = 150m -XX:MaxPermHeapExpansion = 10m -XX:+ UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction = 70 -XX:+ UseCMSInitiatingOccupancyOnly -XX:+ UseParNewGC -XX:ParallelGCThreads = 2 -XX:+ CMSIncrementalPacing -XX:CMSIncrementalDutyCycleMin = 0 -XX:CMSIncrementalDutyCycle = 5 -XX:GCTimeRatio = 49 -XX:MaxGCPauseMillis = 20 -XX:+ UseCMSCompactAtFullCollection -XX:+ CMSClassUnloadingEnabled -XX:+ AggressiveOpts -Xverify:none -Dosgi .instance.area = @ user.dir / Djava.net.preferIPv4Stack = true -jar /home/local/Downloads/eclipse/plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar