将特定进程的页面移出交换区

将特定进程的页面移出交换区

我想知道是否可以将特定进程的页面带入主内存,或者为给定进程或进程类设置参数以使其不会被换出。

答案1

您可以通过读取某个进程的所有内存页面来取消交换。

通常这会有点繁重(阅读/proc/…/maps以了解分配的页面在哪里,然后从中读取这些页面/proc/…/mem— 浏览man proc以了解更多详细信息),但幸运的是,有一个程序已经可以做到这一点:gcore。它的目标是转储核心文件,并在此过程中gcore需要读取所有内存。由于我们实际上对核心文件不感兴趣,我们可以要求它将其存储在/dev/null(核心文件可能很大,因此将它们写入磁盘会使速度慢得多)。示例:

gcore 22382 -o /dev/null

答案2

如果你想提高某个流程的性能,我建议nice

你也可以通过设置内核的交换性

您可能还会发现这个问题及其答案有帮助的。

相关内容