命令jhsdb jmap --heap --pid 1 報錯
阿新 • • 發佈:2021-11-19
一、檢視已經執行的java docker服務的堆使用情況。命令jhsdb jmap --heap --pid 1 報錯
主要錯誤資訊:
ERROR: ptrace(PTRACE_ATTACH, ..) failed for 1: Operation not permitted
Error attaching to process: sun.jvm.hotspot.debugger.DebuggerException: Can't attach to the process: ptrace(PTRACE_ATTACH, ..) failed for 1: Operation not permitted
原因:
Docker 自 1.10 版本開始加入的安全特性。 jmap 這類 JDK 工具依賴於 Linux 的 PTRACE_ATTACH,而 Docker 自 1.10 版本開始,預設的 seccomp 配置檔案中禁用了 ptrace。容器需要加入對應的設定,使容器支援相關命令的使用。
解決:
1.停止docker服務 systemctl stop docker
2.cd /var/lib/docker/containers/容器id 切換到容器路徑
3.vihostconfig.json 編輯配置檔案,修改CapAdd 的值為SYS_PTRACE
4.重啟docker服務 systemctl start docker
修改後的結果: