一尘不染

如何防止对一个程序/进程进行分页?

linux

我有一个需要大量内存的程序,例如所有物理内存的2/3。运行一段时间后,我的操作系统开始将程序交换为hdd。但是我需要程序始终保持非常快的响应,因此我需要防止对该进程进行分页。

如何防止操作系统交换一个进程?

谢谢你的帮助!


阅读 258

收藏
2020-06-07

共1个答案

一尘不染

在程序开始时,调用:

mlockall(MCL_CURRENT | MCL_FUTURE);

(如果您没有该程序的源代码,则必须使用该程序来减少进程的消耗ptrace)。

请注意,这将增加进程失败进行内存分配的机会。

2020-06-07