我有一台32GB的内存计算机,我想模拟尝试在16GB的计算机中运行一个用户进程。一种方法是运行一个很小的用户进程,并阻塞16GB的物理内存,然后进入睡眠状态,然后使该以前的用户进程在可用系统中运行。

问题是,当我编写程序以分配16GB内存时,大部分内存都从虚拟内存中被阻止,而只有大约64MB的物理RAM被阻止。有没有办法强制阻塞物理RAM?

最佳答案

Linux有一个内核参数可以忽略超出一定大小的内存:

    max_addr=[KMG]  [KNL,BOOT,ia64] All physical memory greater than or
                    equal to this physical address is ignored.

所以您可以使用它。或看看 mlock

关于c++ - 如何强制用户程序阻止16GB的物理RAM?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11098664/

10-10 23:22