容器内使用 jinfo、jmap 命令报错 Operation not permitted
Linux JAVA
这其实不是什么 Bug,而是 Docker 自 1.10 版本开始加入的安全特性。类似于 jmap 这些 JDK 工具依赖于 Linux 的 PTRACE_ATTACH,而是 Docker 自 1.10 在默认的 seccomp 配置文件中禁用了 ptrace。1.1 –security-opt seccomp=unconfined简单暴力(不推荐),直接关闭 seccomp 配置。用法:docker run --security-opt seccomp:unconfined ...1.2 –cap-add=SYS_PTRACE使用 --cap-add ... ...
阅读全文
java JVM HeapMemory中Used, Committed and Max的区别
JAVA
首先要明确的是 used < committed < max,单位是 bytes;initJVM启动时从操作系统申请的初始内存,也即JVM参数中-Xms设置的值used(使用的内存)实际使用的内存,包括未被回收的不可达对象占用的内存,它可以比初始(init)内存小committed(申请的内存)操作系统层面为当前JVM进程保留的内存可能等于或大于used内存;JVM可以从操作系统申请很多内存,但是不一定真正使用它,但是操作系统可以为java进程保留相关内存可能小于init内存,因为JVM可以回收内存并将其归还给操作系统如果JVM需要更多内存,它将尝试从操作系统申请,此时commit... ...
阅读全文