交换文件需要很长时间才能“清除”

交换文件需要很长时间才能“清除”

我有一个 1GB 大小的交换文件/swapfile,按照所述步骤在 ubuntu swap 常见问题解答中

在执行 RAM 密集型任务时,我使用“系统监视器”检查内存和交换分区的负载。任务完成后,内存负载会迅速下降……但是,交换分区负载会长时间保持高位,并且只会缓慢下降(见图)。

系统监视器 GUI

当调用时sudo swapoff -a && swapon -a,我可以手动清除交换......但我宁愿知道:

  1. 为什么 Swap 需要这么长时间才能清除?
  2. 这会影响性能吗?

答案1

简短的回答:如果您的计算机运行速度不是很慢,那就没问题。

Linux 仅在需要时才会从交换区中获取内容,否则,将未使用的内容从交换区加载到 RAM 中是没有意义的,从而会减少缓存。

检查系统是否受到交换限制的一种方法是检查

vmstat 1

并查看wa显示进程运行所需时间的列。此外,使用诸如 之类的工具htop查看有多少进程处于磁盘休眠状态(D)。

此外,你应该有更多的交换空间。根据掉期常见问题

    RAM(MB) No hibernation  With Hibernation  Maximum
     256     256              512               512
     512     512             1024              1024
    1024    1024             2048              2048

    RAM(GB) No hibernation  With Hibernation  Maximum
      1      1                2                   2
      2      1                3                   4
      3      2                5                   6
      4      2                6                   8
      5      2                7                  10
      6      2                8                  12
      8      3               11                  16
     12      3               15                  24
     16      4               20                  32
     24      5               29                  48
     32      6               38                  64
     64      8               72                 128
    128     11              139                 256

如果你有 16GB 的 RAM,那么你应该有 4GB 到 32GB 之间的空间

相关内容