在验证jdk8内存限制问题,执行命令出现如下相关提示
docker run --rm -m 1GB public/jdk1.8.0_221 java -XX:+PrintFlagsFinal -version
WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)
出现这个问题的原因是:系统默认未开启swap限制
解决方法
sudo vi /etc/default/grub
增加如下配置
GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"
最后,使用 sudo update-grub 更新系统的GRUB
重启系统后,结果如下
docker run --rm -m 1GB public/jdk1.8.0_221 java -XX:+PrintFlagsFinal -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)