上一篇
linux下如何查看交换分区大小
- Linux
- 2025-07-24
- 7
在Linux下,可通过
free -h
快速查看交换分区(Swap)大小及使用情况,或执行
swapon --show
列出交换分区详细信息,若需进一步分析,可结合
cat /proc/swaps
或
blkid
查询具体分区属性
在 Linux 系统中,交换分区(Swap)是用于扩展物理内存的虚拟存储区域,当系统内存不足时,数据会被转移到交换分区以释放内存空间,以下是查看交换分区大小的多种方法及详细解析:
命令行方法
-
swapon 命令
- 作用:显示当前激活的交换分区信息。
- 用法:
swapon -s
- 输出示例:
Filename Type Size Used Priority /dev/sda3 2G 0B -2
- 解析:
Filename
:交换分区的设备路径(如/dev/sda3
)。Size
:交换分区总大小(如2G
)。Used
:已使用的空间(如0B
表示未使用)。
- 特点:直接显示交换分区的设备信息和状态,适合快速查看基础数据。
-
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
行展示物理内存的使用情况。
-
top 和 htop 命令
- 作用:实时监控系统资源,包括交换分区使用率。
- 输出示例(
top
命令底部):Swap: 2G 0G 2G
- 特点:动态更新,适合观察交换分区的实时占用情况。
-
查看 /proc/meminfo 文件
- 作用:获取内存和交换分区的详细统计信息。
- 用法:
cat /proc/meminfo | grep Swap
- 输出示例:
SwapCached: 0 kB SwapTotal: 2097148 kB SwapFree: 2097148 kB
- 解析:
SwapTotal
:交换分区总大小(单位为 kB)。SwapFree
:可用交换空间。
通过系统配置文件查看
-
/etc/fstab 文件
- 作用:存储系统启动时自动挂载的交换分区信息。
- 用法:
grep swap /etc/fstab
- 输出示例:
UUID=xxxx-xxxx-xxxx-xxxx none swap sw 0 0
- 解析:
UUID
:交换分区的唯一标识符。none
:交换分区不对应具体文件系统。sw
:表示该行定义的是交换分区。
-
df 命令的局限性
- 注意:
df
命令默认无法直接查看交换分区,因为交换分区通常以特殊格式(如swap
)存在,而非普通文件系统,需结合swapon
或free
命令使用。
- 注意:
图形化工具查看
-
GNOME Disk Utility
- 路径:
Applications → Disks
。 - 操作:选择对应分区,查看“Device”或“Partition”标签页中的“Type”是否为
swap
,并显示其大小。
- 路径:
-
KDE Partition Manager
- 路径:
Applications → System → Partition Manager
。 - 操作:右键点击分区,选择“Properties”查看类型和容量。
- 路径:
编程接口查询
-
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
- 示例代码:
-
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 以避免自动挂载。 |
方法可根据实际需求选择使用,建议结合 swapon
和 free
命令快速查看交换分区状态,并通过 /etc/fstab
管理长期