JVM中jmap无法连接java进程的问题
2017-03-09 15:19
387 查看
引言: 在JVM的实际应用中,一般无法通过图形化的界面来进行JVM的观察和问题确定,一般都需要通过命令来进行,这里碰到的问题是无法连接上java进程....
1. 问题的提出
JDK 1.7, Java Web应用
2. 问题的提出
在尝试使用jmap进行探查的过程中,执行如下命令:
>> jmap 8765 [8765是我们通常使用的java应用进程号】
[xxx@xxx ~]$ jmap -heap 9683
Attaching to process ID 9683, please wait...
Error attaching to process: sun.jvm.hotspot.debugger.DebuggerException: Can't attach to the process3. 问题分析 正常来说,服务器上是使用标准的JDK基础包,无特殊设置,jmap是JVM自带的命令,无法连接上process,因为什么原因?
正常来说,肯定是可以的。
Java进程肯定存在的,没有消失。
难道是OS的权限屏蔽, 忽然意识到,我当前使用的是普通用户,而这个java进程是由root用户来启动的。
4. 问题解决
>> sudo su -
切换到root用户,重新执行jmap pid, 即可正常访问命令输出的内容了。
[xxxx@xxxx ~]# jmap heap 9683
Attaching to core 9683 from executable heap, please wait...
Error attaching to core file: Can't attach to the core file
[root@gyl-test-t5 ~]# jmap -heap 9683
Attaching to process ID 9683, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 24.71-b01
using thread-local object allocation.
Parallel GC with 23 thread(s)
Heap Configuration:
MinHeapFreeRatio = 0
MaxHeapFreeRatio = 100
MaxHeapSize = 1258291200 (1200.0MB)
NewSize = 1310720 (1.25MB)
MaxNewSize = 17592186044415 MB
OldSize = 5439488 (5.1875MB)
NewRatio = 2
SurvivorRatio = 8
PermSize = 268435456 (256.0MB)
MaxPermSize = 536870912 (512.0MB)
G1HeapRegionSize = 0 (0.0MB)
Heap Usage:
PS Young Generation
Eden Space:
capacity = 310378496 (296.0MB)
used = 258040456 (246.08655548095703MB)
free = 52338040 (49.91344451904297MB)
83.13734982464764% used
From Space:
capacity = 45613056 (43.5MB)
used = 26470024 (25.24378204345703MB)
free = 19143032 (18.25621795654297MB)
58.03168285852191% used
To Space:
capacity = 46137344 (44.0MB)
used = 0 (0.0MB)
free = 46137344 (44.0MB)
0.0% used
PS Old Generation
capacity = 320339968 (305.5MB)
used = 259420512 (247.40267944335938MB)
free = 60919456 (58.097320556640625MB)
80.98287379488032% used
PS Perm Generation
capacity = 268435456 (256.0MB)
used = 96727704 (92.2467269897461MB)
free = 171707752 (163.7532730102539MB)
36.03387773036957% used
1. 问题的提出
JDK 1.7, Java Web应用
2. 问题的提出
在尝试使用jmap进行探查的过程中,执行如下命令:
>> jmap 8765 [8765是我们通常使用的java应用进程号】
[xxx@xxx ~]$ jmap -heap 9683
Attaching to process ID 9683, please wait...
Error attaching to process: sun.jvm.hotspot.debugger.DebuggerException: Can't attach to the process3. 问题分析 正常来说,服务器上是使用标准的JDK基础包,无特殊设置,jmap是JVM自带的命令,无法连接上process,因为什么原因?
正常来说,肯定是可以的。
Java进程肯定存在的,没有消失。
难道是OS的权限屏蔽, 忽然意识到,我当前使用的是普通用户,而这个java进程是由root用户来启动的。
4. 问题解决
>> sudo su -
切换到root用户,重新执行jmap pid, 即可正常访问命令输出的内容了。
[xxxx@xxxx ~]# jmap heap 9683
Attaching to core 9683 from executable heap, please wait...
Error attaching to core file: Can't attach to the core file
[root@gyl-test-t5 ~]# jmap -heap 9683
Attaching to process ID 9683, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 24.71-b01
using thread-local object allocation.
Parallel GC with 23 thread(s)
Heap Configuration:
MinHeapFreeRatio = 0
MaxHeapFreeRatio = 100
MaxHeapSize = 1258291200 (1200.0MB)
NewSize = 1310720 (1.25MB)
MaxNewSize = 17592186044415 MB
OldSize = 5439488 (5.1875MB)
NewRatio = 2
SurvivorRatio = 8
PermSize = 268435456 (256.0MB)
MaxPermSize = 536870912 (512.0MB)
G1HeapRegionSize = 0 (0.0MB)
Heap Usage:
PS Young Generation
Eden Space:
capacity = 310378496 (296.0MB)
used = 258040456 (246.08655548095703MB)
free = 52338040 (49.91344451904297MB)
83.13734982464764% used
From Space:
capacity = 45613056 (43.5MB)
used = 26470024 (25.24378204345703MB)
free = 19143032 (18.25621795654297MB)
58.03168285852191% used
To Space:
capacity = 46137344 (44.0MB)
used = 0 (0.0MB)
free = 46137344 (44.0MB)
0.0% used
PS Old Generation
capacity = 320339968 (305.5MB)
used = 259420512 (247.40267944335938MB)
free = 60919456 (58.097320556640625MB)
80.98287379488032% used
PS Perm Generation
capacity = 268435456 (256.0MB)
used = 96727704 (92.2467269897461MB)
free = 171707752 (163.7532730102539MB)
36.03387773036957% used
相关文章推荐
- JVM中jmap无法连接java进程的问题
- java进程在但jconsole等监控工具无法连接问题
- linux下jconsole无法连接本地java进程解决办法
- JAVA之JDBC的相关问题(无法与SQLServer连接的解决)
- 探秘Jps及无法查看java进程问题
- Jps介绍以及解决jps无法查看某个已经启动的java进程问题
- Java长期运行后, jps等工具无法连接jvm
- 解决java调试工具无法连接jvm
- 导出的Java程序无法连接数据库的问题解决方案
- java进程占用文件无法删除问题
- Jps介绍以及解决jps无法查看某个已经启动的java进程问题
- 关于Java中使用hessian-3.0.20调用远程服务连接出错异常try catch无法捕捉的问题处理
- Jps介绍以及解决jps无法查看某个已经启动的java进程问题
- WMI进程无法连接问题
- Jps介绍以及解决jps无法查看某个已经启动的java进程问题
- java redis client无法连接redis服务获取连接池问题处理记录
- Java长期运行后, jps等工具无法连接jvm解决办法
- (转)Jps介绍以及解决jps无法查看某个已经启动的java进程问题
- Java无法连接MongoDB问题
- 解决在创建进程流位置是遇到的问题:连接成功,无法检索工作流版本