如何在交换中尽可能多/长时间地保留应用程序?

如何在交换中尽可能多/长时间地保留应用程序?

我发现了很多关于避免应用程序进入交换的问题,但我需要知道一种方法来使特定应用程序(铬)尽可能保持在交换状态。

有什么办法可以做到这一点吗?

基本上只要不集中注意力,它就应该保持在交换位置。

答案1

没有通用的方法可以做到这一点,但可能有一种方法可以在特定的 Unix 变体上做到这一点。

通常最有效的方法是暂停该过程。如果进程没有挂起,则包含进程正在执行的任何操作所访问的代码和数据的所有内存页都不太可能被换出。像 Chromium 这样的繁忙进程会运行大量后台任务来 ping 服务器、运行由 Javascript 触发的计时器等。一旦进程挂起,其内存将保持未使用状态,并且可能会逐渐被换出。

在 Linux 下,您可以调整特定进程组的交换性。这并不能保证它最终会全部换出,你最好挂起它,否则它的一些内存会经常被换入,但如果内核需要内存,来自具有高交换性的进程的页面更有可能被换掉。看使用 cgroup 关闭仅一个进程的交换?

我认为没有任何方法可以说“现在交换这个特定的页面/区域/进程”。

相关内容