dan*_*dan 16 c++ linux paging swapfile
我有一个需要大量内存的程序,比如所有物理内存的2/3.在一些运行时之后,我的操作系统开始将程序交换到hdd.但我需要程序一直响应非常快,所以我需要阻止该进程的分页.
如何防止操作系统交换一个进程?
谢谢你的帮助!
caf*_*caf 8
在程序开始时,请致电:
mlockall(MCL_CURRENT | MCL_FUTURE);
(如果您没有该程序的源代码,则必须使用此方法ptrace来解决该过程).
ptrace
请注意,这将增加进程失败的内存分配机会.
sle*_*ske 6
好吧,有锁定内存的mlock(告诉内核它可能没有被换出),但这意味着相对少量的内存,并且需要修改程序.
另一个选择可能是调整Linux的"swappiness",即它更换页面的倾向.请看这里有趣的讨论.但是,每个过程都不可能.
我不知道任何针对您的问题的每个进程解决方案.
归档时间:
15 年,9 月 前
查看次数:
2571 次
最近记录:
11 年,3 月 前