我使用 Linux 机器进行大量计算工作,有时特定的计算会占用大量 RAM。当我完成后,我最终会得到一堆已使用的交换空间和一堆可用内存,如果我像往常一样继续我的业务,机器上的所有其他进程都会有点滞后,直到它们被交换回来.如果有一个命令可以将所有内容快速分页回 RAM,这样我就可以运行它,然后起身去使用洗手间或其他东西,当我回来时,一切都会再次变得很快,这似乎会很好。 。
我发现这个问题表明你可以完成这个(至少在 Linux 上)
sudo swapoff -a
sudo swapon -a
Run Code Online (Sandbox Code Playgroud)
但当我尝试这样做时,它需要很长时间- 它只能以 2-5 MB/秒的速度释放交换,这远远低于它应有的能力,而且似乎不值得。这是正常的吗?有没有办法加快这个过程,使其在“去洗手间”的时间而不是“出去吃午饭”的时间运行?
您列出的命令是强制内核将所有必要的页面移至 RAM 并重新启用交换的便捷方法。它如此缓慢的原因令人费解 - 除非您有大量碎片的交换文件(而不是分区),或者您试图在执行其他 I/O 时执行此操作。
您可能需要考虑调整swappiness值 ( /proc/sys/vm/)。较低的值意味着系统不太可能将页面调出到磁盘。
您可能还需要启用zswap,这会导致页面被压缩,从而使用更少的交换空间。当然,它确实使用了一些 CPU,但这远比页面调入的影响要小。
| 归档时间: |
|
| 查看次数: |
1453 次 |
| 最近记录: |