我使用的是ibmcom/ibmjava:8-sdk镜像。如何获得线程转储和内存转储?我使用-Xdump选项启动了jvm。但是,当我给kill -3 pid时,没有消息表明转储已创建。
发布于 2017-08-07 20:24:15
我假设您正在向分离的容器发出kill命令。如果是这样,那么命令"docker logs“将有助于获取详细信息。
我就是这么尝试的,
1.启动容器(分离状态):
docker run --rm --detach --workdir /dockapp --volume /Users/parselva/docker-test:/dockapp ibmjava:latest java -Xdump:java:events=vmstart ThreadSleep2.读取容器内java进程的pid:
docker exec 97b37120ea7b ps -eaf | grep ThreadSleep
root 1 0 0 11:03 ? 00:00:00 java -Xdump:java:events=vmstart ThreadSleep向进程发出信号:
docker exec 97b37120ea7b kill -3 1docker logs 4.使用命令找到生成的日志文件的位置:
docker logs 97b37120ea7b
JVMDUMP039I Processing dump event "user", detail "" at 2017/08/07 11:10:07 - please wait.
JVMDUMP032I JVM requested Java dump using '/dockapp/javacore.20170807.111007.1.0004.txt' in response to an event
JVMDUMP010I Java dump written to /dockapp/javacore.20170807.111007.1.0004.txt
JVMDUMP013I Processed dump event "user", detail "".https://stackoverflow.com/questions/44190941
复制相似问题