为什么我的交换区域在 Ubuntu Server 18.04.2 中设置为零?

为什么我的交换区域在 Ubuntu Server 18.04.2 中设置为零?

通过检查我的 Ubuntu 服务器中的交换大小,我发现它被设置为零。由于它是在 AWS EC2 中以非常基本的配置安装的,所以我不确定是否必须执行其他步骤来调整交换大小区域。

我运行以下命令并得到以下结果:

    # grep Swap /proc/meminfo
       SwapCached:            0 kB
       SwapTotal:             0 kB
       SwapFree:              0 kB

    # swapon -s 

    #  free -m
                     total        used        free      shared  buff/cache   available
    Mem:           7975         187        7059           0         728        7549
    Swap:             0           0           0

# cat /proc/swaps
  Filename                         Type            Size    Used    Priority

将交换区域设置为零是否正常?如果不正常,我应该怎么做才能修复它?

谢谢 !

答案1

由于某些原因,一些云(VPS)提供商在其(已修改的)安装中禁用交换。如今,Ubuntu 支持交换文件,因此您不需要单独的交换分区。要通过交换文件启用交换,请按照以下步骤操作:

sudo fallocate -l 4G /swapfile  # Create a 'swap-file'; 4G in this case
sudo chmod 600 /swapfile        # Set the necessary file permissions
ls -lh /swapfile                # Check
sudo mkswap /swapfile           # Mark the file as 'swap'
sudo swapon /swapfile           # Enable the 'swap'
sudo swapon --show              # Check
free -h                         # Another check

编辑/etc/fstab并使更改永久生效。使用以下命令进行更改:

sudo sed 's/^.*swap.*$//' /etc/fstab -i.bak                # Remove the previous swap entries 
                                                           # and create a backup copy of the file
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab # Add a new entry

或者编辑/etc/fstab并添加以下条目手动

/swapfile none swap sw 0 0

这就对了。


额外调整的想法(我更喜欢使用默认设置进行正常交换使用):

  • 改变频率RAM 到 SWAP数据复制:

    sudo sysctl vm.swappiness=10    # value 0-100: low value low frequency
    cat /proc/sys/vm/swappiness     # Check
    
  • 改变频率缓存刷新

    sudo sysctl vm.vfs_cache_pressure=50 # 0-100: high value high frequency
    cat /proc/sys/vm/vfs_cache_pressure  # Check
    
  • 使上述更改永久生效:

    sudo cp /etc/sysctl.conf{,.bak} # Create a backup copy of the file '/etc/sysctl.conf'
    echo -e '\nCustom settings: value 0-100; default 100\nvm.swappiness=10\nvm.vfs_cache_pressure=50' | sudo tee -a /etc/sysctl.conf
    

    或者编辑/etc/sysctl.conf并添加以下条目手动

    # Custom settings: value 0-100; default 100
    vm.swappiness=10
    vm.vfs_cache_pressure=50
    

相关内容