当前位置:首页 > Linux > 正文

linux下如何查看交换分区大小

在Linux下,可通过 free -h快速查看交换分区(Swap)大小及使用情况,或执行 swapon --show列出交换分区详细信息,若需进一步分析,可结合 cat /proc/swapsblkid查询具体分区属性

在 Linux 系统中,交换分区(Swap)是用于扩展物理内存的虚拟存储区域,当系统内存不足时,数据会被转移到交换分区以释放内存空间,以下是查看交换分区大小的多种方法及详细解析:

命令行方法

  1. swapon 命令

    • 作用:显示当前激活的交换分区信息。
    • 用法swapon -s
    • 输出示例
      Filename                Type        Size    Used    Priority
      /dev/sda3                              2G      0B      -2
    • 解析
      • Filename:交换分区的设备路径(如 /dev/sda3)。
      • Size:交换分区总大小(如 2G)。
      • Used:已使用的空间(如 0B 表示未使用)。
    • 特点:直接显示交换分区的设备信息和状态,适合快速查看基础数据。
  2. free 命令

    • 作用:查看内存和交换分区的使用情况。
    • 常用参数
      • free -h:以人类可读的格式(如 1G)显示内存和交换分区。
      • free -m:以 MB 为单位显示数值。
    • 输出示例free -h):
                   total        used        free      shared  buff/cache   available
      Mem:           7.8G        2.1G        4.9G         87M        860M        5.4G
      Swap:          2.0G          0B        2.0G
    • 解析
      • Swap 行显示交换分区的总大小(0G)和已用空间(0B)。
      • Mem 行展示物理内存的使用情况。
  3. top 和 htop 命令

    linux下如何查看交换分区大小  第1张

    • 作用:实时监控系统资源,包括交换分区使用率。
    • 输出示例top 命令底部):
      Swap:      2G          0G          2G
    • 特点:动态更新,适合观察交换分区的实时占用情况。
  4. 查看 /proc/meminfo 文件

    • 作用:获取内存和交换分区的详细统计信息。
    • 用法cat /proc/meminfo | grep Swap
    • 输出示例
      SwapCached:            0 kB
      SwapTotal:       2097148 kB
      SwapFree:        2097148 kB
    • 解析
      • SwapTotal:交换分区总大小(单位为 kB)。
      • SwapFree:可用交换空间。

通过系统配置文件查看

  1. /etc/fstab 文件

    • 作用:存储系统启动时自动挂载的交换分区信息。
    • 用法grep swap /etc/fstab
    • 输出示例
      UUID=xxxx-xxxx-xxxx-xxxx none swap sw 0 0
    • 解析
      • UUID:交换分区的唯一标识符。
      • none:交换分区不对应具体文件系统。
      • sw:表示该行定义的是交换分区。
  2. df 命令的局限性

    • 注意df 命令默认无法直接查看交换分区,因为交换分区通常以特殊格式(如 swap)存在,而非普通文件系统,需结合 swaponfree 命令使用。

图形化工具查看

  1. GNOME Disk Utility

    • 路径Applications → Disks
    • 操作:选择对应分区,查看“Device”或“Partition”标签页中的“Type”是否为 swap,并显示其大小。
  2. KDE Partition Manager

    • 路径Applications → System → Partition Manager
    • 操作:右键点击分区,选择“Properties”查看类型和容量。

编程接口查询

  1. Python 脚本

    • 示例代码
      import os
      with open("/proc/meminfo") as f:
          for line in f:
              if "Swap" in line:
                  print(line.strip())
    • 输出
      SwapTotal:       2097148 kB
      SwapFree:        2097148 kB
  2. C语言 API

    • 方法:通过 sysinfo() 函数获取内存和交换分区信息,但需手动计算单位转换。

常见问题解答(FAQs)

问题 解答
交换分区大小不足如何解决? 创建新的交换文件:dd if=/dev/zero of=/swapfile count=1024k && chmod 600 /swapfile && mkswap /swapfile && swapon /swapfile
将新交换文件加入 /etc/fstab 以实现开机自动挂载。
如何临时禁用交换分区? 使用命令 swapoff -a 可禁用所有交换分区,但重启后仍需修改 /etc/fstab 以避免自动挂载。

方法可根据实际需求选择使用,建议结合 swaponfree 命令快速查看交换分区状态,并通过 /etc/fstab 管理长期

0