Linux 的 swap 空间需要设置多大?

无论是 windows 系统还是 linux 系统, 除了物理内存外, 都还有一个虚拟内存。在 linux 上, 虚拟内存被称为 swap space。过去以来, 虚拟内存的大小应该是物理内存的两倍, 但是最近几年来, 物理内存的大小至少都有了好几个 GB, 如果 16G 内存用 32G 的 swap 岂不是太占用硬盘空间?

下图是虚拟内存和交换空间的映射关系, 虚拟内存的存在, 可以提高电脑的运行速度, 所以其存在很有意义

20171107231736310.png

我们看看 redhat 的官方答复是怎么说的

对于内存较少 (1 GB 及以下) 的系统尤其重要。在这些系统上, 如果分配的交换空间不足, 可能会导致不稳定等问题, 甚至导致已安装的系统无法启动。

Amount of RAM in the system 物理内存 Recommended swap space 建议的交换空间大小 Recommended swap space if allowing for hibernation 如果开启休眠功能建议的交换空间大小
⩽ 2GB 2 times the amount of RAM 3 times the amount of RAM
> 2GB – 8GB Equal to the amount of RAM 2 times the amount of RAM
> 8GB – 64GB At least 4 GB 1.5 times the amount of RAM
> 64GB At least 4 GB Hibernation not recommended

总结起来就是

  • 如果不打算开启休眠功能, 物理内存在 8G 以下, 则 swap 设置为与物理内存一样大
  • 如果不打算开启休眠功能, 物理内存在 8G 以上, 则 swap 空间设置为 8G 即可
  • 当物理内存大于 64G 时, 不建议开启休眠功能
  • 物理内存小于 1G 时, 则 swap 空间最少设置为 1G

以下是 Ubuntu 的指南, 更加细致: (从左至右依次是RAM大小, 不开启休眠, 开启休眠, 最大值)

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

        RAM   No hibernation    With Hibernation  Maximum
        1GB              1GB                 2GB      2GB
        2GB              1GB                 3GB      4GB
        3GB              2GB                 5GB      6GB
        4GB              2GB                 6GB      8GB
        5GB              2GB                 7GB     10GB
        6GB              2GB                 8GB     12GB
        8GB              3GB                11GB     16GB
       12GB              3GB                15GB     24GB
       16GB              4GB                20GB     32GB
       24GB              5GB                29GB     48GB
       32GB              6GB                38GB     64GB
       64GB              8GB                72GB    128GB
      128GB             11GB               139GB    256GB
      256GB             16GB               272GB    512GB
      512GB             23GB               535GB      1TB
        1TB             32GB              1056GB      2TB
        2TB             46GB              2094GB      4TB
        4TB             64GB              4160GB      8TB
        8TB             91GB              8283GB     16TB

原文

Linux的swap空间需要设置多大?
16.17.5. Recommended Partitioning Scheme
SwapFaq

最后更新于 2018-03-03
使用 Hugo 构建
主题 StackJimmy 设计