我在Java app
内运行docker container
,4 CPU
限制为docker container
,10 CPU
运行的机器nproc
}}
在docker container
内拨打4
时,我得到的结果是Runtime.getRuntime().availableProcessors()
,但当我致电10
时,我得到了Java
。
CPU
如何查看所有Java
?nproc
之外还有另一种方式Runtime.getRuntime().exec("nproc")
获得与<form>
相同的结果吗?答案 0 :(得分:1)
根据Ken Sipe(下面的链接),在使用共享cpus(默认在docker中)而不是cpusets(用于进程的固定cpus)时,java中有一个错误显示错误的cpus / cores。
无论此设置如何,我自己都会看到错误的数字:
Runtime.availableProcessors(),没有docker:8 在码头工作者我总是得到4,
而nproc表示1(当使用--cpuset-cpus = 0&lt; - 固定在cpu0上时)