ubuntu

Ubuntu Swapper如何调整参数以适应不同需求

小樊
50
2025-10-18 01:58:56
栏目: 智能运维

Ubuntu Swapper参数调整指南(适配不同需求)

一、调整Swap空间大小(适配内存需求变化)

Swap空间是物理内存的扩展,其大小需根据物理内存容量和使用场景调整,避免过大(浪费磁盘空间)或过小(无法应对内存不足)。

  1. 查看当前Swap状态
    使用sudo swapon --show查看已启用的Swap分区/文件,或free -h查看Swap总大小及使用率。
  2. 创建/调整Swap文件(推荐)
    • 创建新Swap文件(如需扩大):
      sudo fallocate -l 4G /swapfile  # 创建4GB Swap文件(若fallocate不可用,用`dd if=/dev/zero of=/swapfile bs=1M count=4096`)
      sudo chmod 600 /swapfile        # 设置严格权限(仅root可读写)
      sudo mkswap /swapfile           # 格式化为Swap空间
      sudo swapon /swapfile           # 启用Swap文件
      
    • 调整Swap文件大小(如需缩小/扩大):
      先禁用Swap:sudo swapoff /swapfile
      修改文件大小(如扩大至8GB):sudo fallocate -l 8G /swapfile
      重新格式化并启用:sudo mkswap /swapfile && sudo swapon /swapfile
    • 删除Swap文件(如需移除):
      sudo swapoff /swapfile && sudo rm /swapfile,并从/etc/fstab中删除对应条目。
  3. 调整Swap分区大小(若使用分区)
    若Swap空间为分区(如/dev/sda3),需使用LVM(逻辑卷管理)或fdisk调整:
    • LVM方式(推荐,灵活):
      sudo swapoff /dev/vgubuntu/swap_1  # 关闭Swap分区
      sudo lvextend -L +2G /dev/vgubuntu/swap_1  # 扩大2GB(根据需求调整数值)
      sudo mkswap /dev/vgubuntu/swap_1   # 重新格式化
      sudo swapon /dev/vgubuntu/swap_1   # 启用
      
    • 非LVM方式(需重新分区):
      使用fdisk /dev/sdX删除旧分区、创建新分区(类型为82,Linux swap),然后格式化并启用。
  4. 永久生效
    将Swap文件/分区添加到/etc/fstab,确保重启后自动启用:
    • Swap文件:添加/swapfile none swap sw 0 0
    • Swap分区:添加UUID=xxxx none swap sw 0 0UUID通过sudo blkid获取)。

二、调整Swappiness参数(控制Swap使用倾向)

Swappiness(默认值60)决定了内核将内存数据换出至Swap空间的倾向,数值越高,越积极使用Swap(可能导致性能下降);数值越低,越优先使用物理内存(适合内存充足的场景)。

  1. 查看当前Swappiness值
    cat /proc/sys/vm/swappiness  # 临时查看(重启失效)
    
  2. 临时调整Swappiness(立即生效,重启后恢复默认):
    sudo sysctl vm.swappiness=10  # 将值设为10(推荐范围:10-30,内存充足可设为1-10)
    
  3. 永久调整Swappiness(重启后仍有效):
    编辑/etc/sysctl.conf文件,添加或修改以下行:
    vm.swappiness=10
    
    保存后运行sudo sysctl -p使更改生效。

三、调整Swap优先级(多Swap场景优化)

若系统有多个Swap分区/文件,可通过优先级(pri参数)控制其使用顺序:数值越高,优先级越高(内核优先使用高优先级Swap)。

  1. 临时设置优先级
    禁用现有Swap,再启用并指定优先级(如设为10):
    sudo swapoff /dev/sdXY && sudo swapon -p 10 /dev/sdXY  # 适用于分区
    sudo swapoff /swapfile && sudo swapon -p 10 /swapfile  # 适用于文件
    
  2. 永久设置优先级
    /etc/fstab中对应行添加pri=value,例如:
    /dev/sdXY none swap sw,pri=10 0 0  # 分区
    /swapfile none swap sw,pri=10 0 0  # 文件
    
    保存后重启系统或运行sudo swapon -a使更改生效。

四、监控Swap使用情况(适配优化验证)

调整参数后,需定期监控Swap使用情况,确保配置符合需求:

  1. 查看Swap使用详情
    sudo swapon --show  # 显示Swap分区/文件及使用量
    free -h             # 显示内存与Swap总用量及使用率
    
  2. 实时监控Swap活动
    使用vmstat命令查看Swap换入换出频率(si=换入内存,so=换出内存):
    vmstat 1 5  # 每1秒刷新1次,共5次
    
    si/so值持续较高,说明Swap使用频繁,可能需要扩大Swap空间或降低Swappiness。

注意事项

0
看了该问题的人还看了