【发布时间】:2011-10-16 11:52:59
【问题描述】:
我正在编写一个算法来执行一些外部内存计算,即您的输入数据不适合主内存并且您必须考虑 I/O 复杂性。
由于我的测试并不总是想要使用真实输入,我想限制我的进程可用的内存量。我发现,我可以设置mem内核参数来限制所有进程的物理使用内存(对吗?)
有没有办法做到这一点,但有一个每个进程的限制。我见过ulimit,但它只限制了每个进程的虚拟内存。有什么想法(也许我什至可以在我的 C++ 代码中以编程方式设置它)?
【问题讨论】:
-
您是依靠虚拟内存和linux的分页将相关数据加载到内存中,还是打算自己手动将数据加载到缓冲区中?
-
我使用虚拟内存 + linux 的分页(加上一个名为 stxxl 的库用于一些外部内存数据结构,但我已经可以控制它们的内存使用)
-
添加了 linux-kernel 标签,因为您可能需要为此直接与内核交谈,而内核人员最有可能知道它。
标签: c++ linux memory process linux-kernel