欺骗JVM有关可用内核数的信息(在Linux上)

欺骗JVM有关可用内核数的信息(在Linux上),第1张

欺骗JVM有关可用内核数的信息(在Linux上)

以下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来使用其自己的
安装名称空间 启动新进程。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4938739.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-13
下一篇2022-11-13

发表评论

登录后才能评论

评论列表(0条)

    保存