一尘不染

我可以告诉Linux不要换出特定进程的内存吗?

linux

有没有办法告诉Linux,它不应该将特定进程的内存换出到磁盘上?

它是一个Java应用程序,因此理想情况下,我希望从命令行中找到一种方法。

我知道您可以将全局swappiness设置为0,但这明智吗?


阅读 231

收藏
2020-06-02

共1个答案

一尘不染

您可以通过Linux下的mlockall(2)系统调用来完成此操作。这将在整个过程中起作用,但是请务必阅读您需要传递的参数。

您是否真的需要将整个过程置于核心?如果它是一个Java应用程序,则可能会将整个JVM锁定在内核中。我不知道执行此操作的命令行方法,但是您可以编写一个简单的程序来调用fork,call
mlockall,然后exec

您可能还会查看madvise(2)中的一种访问模式通知是否满足您的需求。如果VM子系统适合您,则向其建议更好的分页策略可能会更好。

请注意,很久以前,现在在SunOS之下,有一种类似于madvise的机制称为vadvise(2)

2020-06-02