我现在正在Ubuntu上解决以下问题:是否可以指定一个进程只能在RAM中运行(即不允许交换)还是仅在交换部分中反向运行? 我的意思是这个过程应该被系统杀死,而不是使用其他types的内存。
这对我来说很重要,因为我应该比较更多algorithm的运行时间,并且我必须确保所有进程都运行在RAM中或交换部分中。
不,除非一个进程获取内存并使用mlock绑定这个内存,否则没有保证的方法来确保它不会交换。
交换用于匿名脏页面。 它没有固定的文件系统支持或来源,所以没有程序可以从交换开始。
除非应用程序调用内存,否则使用mlock()绑定内存,则可以进行交换。 您可以尝试通过不使用交换文件或交换分区来消除整个“进入交换”理论,但这不是一个真正推荐的方法。
如果在这个时候掉期,那么可能没有一个好的方法来杀死一个进程。 然而,编写一个微小的deamon应该是相当容易的。 你的脚本需要做什么:
这可能不是一个好的解决scheme,但它可能比没有好。 有关的讨论可以在linuxquestions.orgfind。 对于手动监视进程,可以通过“top”来显示使用了多less交换(在顶部,点击“f”并显示SWAP字段)。 心连心