温馨提示×

如何检查Ubuntu Swapper是否正常工作

小樊
55
2025-11-02 02:13:18
栏目: 智能运维

如何检查Ubuntu Swapper是否正常工作

Swapper(交换空间)是Ubuntu系统在物理内存不足时用于扩展虚拟内存的关键机制,其正常工作直接影响系统稳定性与性能。以下是检查Swapper状态的详细方法:

1. 检查Swap空间是否启用

使用swapon命令可快速查看当前启用的Swap分区/文件:

sudo swapon --show

若输出为空,说明Swap未启用;若显示类似以下内容则表示启用(如/dev/sda2分区或/swapfile文件):

NAME      TYPE      SIZE USED PRIO
/dev/sda2 partition 2G   0B   -2

也可通过查看/proc/swaps文件验证(内容与swapon --show一致):

cat /proc/swaps

2. 查看Swap使用详情

  • free命令:以人类可读格式(GB/MB)显示内存与Swap的总大小、已用空间、可用空间:

    free -h
    

    输出示例:

              total  used  free  shared  buff/cache  available
    Mem:      7.7G 1.6G 1.2G    1.0G        5.0G       5.8G
    Swap:     2.0G   0B  2.0G
    

    Swap行的used值长期接近total,说明物理内存严重不足,系统过度依赖Swap。

  • vmstat命令:统计虚拟内存使用情况,重点关注si(从磁盘交换到内存的数据量)、so(从内存交换到磁盘的数据量):

    vmstat -s | grep swap
    

    输出示例:

    8388608 K total swap
          0 K used swap
    8388608 K free swap
    

    si/so值持续较高(如每秒超过100KB),说明Swap交换频繁,可能影响性能。

3. 监控Swap使用趋势

  • top/htop命令:实时查看系统资源使用情况,其中Swap部分显示当前Swap使用量及占比:

    top  # 或安装htop:sudo apt install htop && htop
    

    top输出中,%MEM列显示进程占用的物理内存比例,TIME+列显示进程占用CPU时间——若某进程长期占用高内存且TIME+增长快,可能导致Swap使用增加。

  • gnome-system-monitor:图形化工具(适用于桌面环境),通过“系统监视器”→“资源”标签查看内存与Swap的使用曲线,直观了解趋势。

4. 检查Swappiness参数配置

Swappiness(vm.swappiness)是内核参数,控制系统使用Swap的倾向(默认值60,范围0-100):

  • 值越高,系统越倾向于使用Swap(即使物理内存充足);
  • 值越低,系统越优先使用物理内存(仅在内存不足时使用Swap)。

查看当前值:

cat /proc/sys/vm/swappiness

临时修改(重启后失效):

sudo sysctl vm.swappiness=20  # 推荐值:10-20(平衡性能与内存利用率)

永久修改:编辑/etc/sysctl.conf文件,添加以下行:

vm.swappiness=20

保存后运行sudo sysctl -p使设置生效。

5. 分析Swap使用原因

若Swap使用异常(如used值过高),可通过以下命令定位占用Swap的进程:

sudo smem -s swap -k -r | head -10  # 按Swap使用量排序,显示前10个进程

或使用top命令:按Shift+F选择%MEMSWAP列排序,查看占用Swap最多的进程。

通过以上方法,可全面检查Ubuntu Swapper的工作状态,及时发现Swap使用异常(如未启用、过度使用、配置不合理),并采取相应措施优化(如增加物理内存、调整Swappiness、清理占用Swap的进程)。

0