为了获得在服务器(基于 RHEL7 / CentOS7)中运行的 JavaVM (1.8.0_222) 的应用程序启动命令,添加 jcmd (jdk1.8.0_66) 和 VM.command_line 选项,如下所示(每分钟 1 个)。运行(连续)次。
"jcmd {process ID} VM.command_line" 将在重新启动 JavaVM (1.8.0_222) 应用程序后返回错误。
java.io.IOException: Connection refused
at sun.tools.attach.LinuxVirtualMachine.connect(Native Method)
at sun.tools.attach.LinuxVirtualMachine.<init>(LinuxVirtualMachine.java:124)
at sun.tools.attach.LinuxAttachProvider.attachVirtualMachine(LinuxAttachProvider.java:63)
at com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:208)
at sun.tools.jcmd.JCmd.executeCommandForPid(JCmd.java:147)
at sun.tools.jcmd.JCmd.main(JCmd.java:131)
我还每分钟运行一次“jcmd {process ID} PerfCounter.print”,它工作正常。
目前,我已确定原因并每隔 15 分钟重新启动 JavaVM (1.8.0_222) 应用程序。
我正在尝试创建 10 个相同的服务器。总共大约 3000 次重新启动后发生。虽然一个事件发生的概率很低,
我无法确定造成这种情况的原因。