如何有选择地将内存放入交换?(Linux)的

ide*_*n42 3 c linux memory-management swapfile

在分配内存并且已知它(几乎肯定/可能)长时间不使用的情况下,标记此内存以更积极地移动到交换空间可能是有用的.

是否有一些命令告诉内核这个?

如果不这样做,最好将这些文件转储到临时文件中,但我对发送到交换(或类似的东西)的能力感到好奇.


当然,如果没有交换空间,这将无能为力,在这种情况下,写入临时文件可能会更好.

Chr*_*odd 6

您可以使用该madvise调用告诉内核将来可能会对内存执行的操作.例如:

madvise(base, length, MADV_SOFT_OFFLINE);
Run Code Online (Sandbox Code Playgroud)

告诉内核你不会很快就需要内存,所以它可以刷新到后备存储(或者如果它从文件映射并且没有改变就被删除).

还有MADV_DONTNEED一个允许内核即使被修改也会丢弃内容(因此当您下次访问内存时,如果这样做,它可能会被归零或从原始映射文件重新读取).