因为买的 阿里云99计划 - ECS 经济型e实例

2核2G,3M固定带宽,40G ESSD Entry云盘

装了 Halo 属实连个 conda install 都跑不了了

发现默认是没开启 swap 的,设置一下

swapon --show                   # 查看已激活的 Swap
free -h                         # 查看内存和 Swap 使用情况
fallocate -l 4G /swapfile       # 创建 4GB 的 Swap 文件
# 如果 fallocate 失败,改用 dd:
# dd if=/dev/zero of=/swapfile bs=1M count=4096
chmod 600 /swapfile             # 仅 root 可读写
mkswap /swapfile                # 格式化文件为 Swap 格式
swapon /swapfile                # 临时启用
swapon --show                   # 应显示 /swapfile
free -h                         # 检查 Swap 是否生效
vi /etc/fstab                   # 在文件末尾添加:
/swapfile none swap sw 0 0

# 调整 Swappiness
# 推荐值 10-60,越低越倾向使用物理内存
sysctl vm.swappiness=60
# 永久生效
echo 'vm.swappiness=60' | sudo tee -a /etc/sysctl.conf
# 调整缓存压力
echo 'vm.vfs_cache_pressure=50' | sudo tee -a /etc/sysctl.conf
sysctl -p

#--------------------------------------- 如果希望用磁盘分区而非文件:

fdisk /dev/sdX        # 创建新分区(类型设为 Linux Swap,82)
mkswap /dev/sdXn      # 格式化分区
swapon /dev/sdXn      # 启用
vi /etc/fstab         # 在文件末尾添加:
/dev/sdXn none swap sw 0 0

#--------------------------------------- 部分云平台(如 AWS/Aliyun)需先关闭 cloud-init 的 Swap 管理:

vi /etc/cloud/cloud.cfg
# 设置 `swap_enabled: false`

swap-config.png

好多了...