如何安全地获取docker实例可用的CPU核心数?
我知道在普通Java中可以这样做(包括逻辑核心数):
int cores = Runtime.getRuntime().availableProcessors();
当Java应用程序在Docker镜像内运行时,这种情况也可以吗?还是我需要考虑其他因素?
/sys/fs/cgroup/cpu,cpuacct/docker/f24b61ce690fe77f9eb0f029215e9491cc54642d686770d71218b4a0ada27ce3
在Java中,您只需读取这些伪文件并计算每个CPU核心的使用情况。
JShell
中放置并运行Runtime.getRuntime().availableProcessors();
,包括和不包括--cpus 1
。从命令行输入:docker run -it --rm --cpus 1 openjdk:11-jdk
。 - Malt