以下Java程序显示Java VM看到的处理器数量:
public class AvailableProcessors { public static void main(String... args) { System.out.println(Runtime.getRuntime().availableProcessors()); }}如果我在家用计算机上执行此程序,它将显示
4,这是实际的内核数(包括超线程)。现在,让我们欺骗Java VM,使其相信只有两个处理器:
$ echo '0-1' > /tmp/online$ mount --bind /tmp/online /sys/devices/system/cpu/online
如果我再次运行上述程序,它将打印
2而不是
4。
此技巧会影响系统上的所有进程。但是,可以将效果仅限制于某些过程。Linux上的每个进程都可以拥有自己的安装点名称空间。例如,请参见 mount(2)
手册页中的预处理名称空间部分。例如,您可以使用lxc来使用其自己的
安装名称空间 启动新进程。



