通过检查我的 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