Linux如何查看swap分区的大小?

在Linux系统中,swap(交换空间)是作为物理内存的补充,当物理内存不足时,系统会将部分不常用的数据暂时存放到swap空间中,从而保证当前运行的程序能够继续执行,查看swap的大小和使用情况,对于系统性能监控、资源优化以及故障排查都至关重要,本文将详细介绍Linux系统中查看swap大小的多种方法,包括常用命令的参数说明、输出解读以及不同场景下的适用性。

linux 如何查看swap大小

使用free命令查看swap基本信息

free命令是最常用、最基础的内存查看工具,能够以简洁的表格形式展示系统内存和swap的总量、已用、空闲等信息。

基本用法

free -h

-h参数表示以“人类可读”的格式显示(如KB、MB、GB),避免输出大量数字,便于快速理解。

输出解读

执行free -h后,输出通常包含两行(totalusedfreesharedbuff/cacheavailable)和两列(MemSwap),与swap直接相关的列是Swap列,具体含义如下:

  • total:swap的总大小(包括所有swap分区和swap文件);
  • used:当前已使用的swap大小;
  • free:当前空闲的swap大小;
  • available:可用swap大小(通常与free相近,但可能考虑了系统保留空间)。

示例输出

              total        used        free      shared  buff/cache   available
Mem:           7.7G        2.1G        3.2G        512M        2.4G        4.8G
Swap:          2.0G        500M        1.5G

从示例中可知,系统swap总大小为2.0GB,已使用500MB,剩余1.5GB可用。

优势与局限

  • 优势:命令简单直观,适合快速查看swap总量和基本使用情况;
  • 局限:无法区分swap是分区还是文件,也无法显示swap设备的详细信息(如路径、类型)。

使用swapon命令查看swap详细信息

swapon命令用于管理swap空间,通过--show参数可以列出系统中所有已启用的swap设备的详细信息,包括设备名称、类型、大小、使用量等。

基本用法

swapon --show

输出解读

输出表格包含以下列:

  • NAME:swap设备的名称(如/dev/sda2/swapfile);
  • TYPE:swap类型(partition表示分区,file表示文件,zram表示压缩内存swap);
  • SIZE:swap大小(默认以KB为单位,可加-h参数转为人类可读格式);
  • USED:已使用量;
  • PRIO:swap优先级(数值越小优先级越高,系统会优先使用高优先级的swap)。

示例输出

NAME      TYPE   SIZE   USED PRIO
/dev/sda2 partition 2G 500M   -2
/swapfile file     1G   0M   -3

从示例中可知,系统有两个swap设备:一个是/dev/sda2分区(2GB,已用500MB,优先级-2),另一个是/swapfile文件(1GB,未使用,优先级-3)。

扩展用法

若需查看swap的总量和已用总量(类似free的汇总),可使用:

swapon --show --noheadings | awk '{sum+=$3; used+=$4} END {print "Total:", sum/1024/1024 "GB", "Used:", used/1024/1024 "GB"}'

查看/proc/swaps文件

/proc/swaps是Linux内核提供的虚拟文件,记录了当前系统中所有swap设备的信息,与swapon --show类似,但更底层,适合脚本处理或直接读取。

linux 如何查看swap大小

基本用法

cat /proc/swaps

输出解读

输出格式与swapon --show类似,包含FilenameTypeSizeUsedPriority列,

Filename         Type        Size      Used    Priority
/dev/sda2       partition   2097152   512000    -2
/swapfile       file        1048576   0        -3

其中SizeUsed单位为KB,可通过awk等工具转换为更易读的单位。

优势

适合在脚本中解析swap信息,例如检查swap是否启用:

[ -s /proc/swaps ] && echo "Swap is enabled" || echo "Swap is disabled"

使用vmstat命令监控swap活跃度

vmstat(Virtual Memory Statistics)命令用于监控系统进程、内存、I/O、CPU等状态,通过特定参数可以查看swap的使用频率和活跃情况,判断系统是否频繁依赖swap。

基本用法

vmstat -s

-s参数以统计表形式显示内存和swap的详细信息。

输出解读

输出中与swap相关的行包括:

  • total swap used:已使用的swap总量;
  • total swap free:空闲swap总量;
  • swap in:从swap读入内存的数据总量(单位KB);
  • swap out:写入swap的内存数据总量(单位KB)。

示例:

...
total swap used 512000
total swap free 1572864
swap in 0
swap out 1048576
...

动态监控swap使用情况(每秒更新):

vmstat 1

输出中的si(swap in)和so(swap out)列表示每秒swap的读写量,若这两个数值持续较高,说明系统内存不足,频繁使用swap,可能影响性能。

linux 如何查看swap大小

使用tophtop命令实时监控swap

tophtop是交互式进程监控工具,可以在内存使用区域实时显示swap的总量和使用量,适合动态观察swap变化。

top命令

执行top后,按Shift + M按内存排序,在顶部信息栏找到KiB Swap行,

KiB Swap: 2097152 total, 512000 used, 1572864 free

表示swap总量2GB,已用500MB。

htop命令

htop界面更直观,在“MEM”区域下方会显示“SWAP”信息,包括总量、已用、空闲,且可用颜色区分使用比例。

不同方法对比与适用场景

为方便选择,以下表格总结了各方法的优缺点和适用场景:

命令/文件 用途 输出信息 适用场景
free -h 快速查看swap总量和使用量 swap的总量、已用、空闲 日常快速检查,无需详细信息
swapon --show 查看所有swap设备详细信息 设备名、类型、大小、使用量、优先级 需区分swap类型或优先级时
/proc/swaps 脚本解析swap信息 设备名、类型、大小、使用量、优先级 自动化脚本、底层信息查看
vmstat -s 统计swap总量和读写量 swap总量、已用、空闲、读写总量 分析swap活跃度,判断内存压力
top/htop 实时监控swap使用变化 swap总量、已用、空闲(动态) 实时监控,观察swap使用趋势

进阶补充:swap大小建议与优化

swap大小配置建议

  • 物理内存≤8GB:swap大小建议为物理内存的1-2倍;
  • 物理内存8GB-64GB:swap大小建议与物理内存相等;
  • 物理内存>64GB:swap可适当减少(如32GB-64GB),避免swap占用过多磁盘空间。
  • zram:对于内存有限的设备(如树莓派),可使用zram(压缩内存swap),减少磁盘I/O。

swap使用率高怎么办?

  • 检查内存占用:使用topps aux查找占用内存高的进程,优化或终止异常进程;
  • 调整swappinessswappiness参数(0-100)控制swap使用倾向,值越高越倾向于使用swap,临时调整:sudo sysctl vm.swappiness=60;永久修改:编辑/etc/sysctl.conf,添加vm.swappiness=60
  • 增加物理内存:若swap频繁使用且系统卡顿,最根本的解决方法是增加物理内存。

相关问答FAQs

问题1:如何判断swap是否足够?
解答:判断swap是否足够需结合物理内存和系统负载,可通过free -h查看swap剩余量,若swap使用率长期超过80%且物理内存不足,说明swap可能不足;同时用vmstat 1观察si/so值,若持续较高(如超过100MB/s),说明系统频繁依赖swap,需考虑增加swap或物理内存,对于普通桌面应用,swap为物理内存1-2倍足够;对于服务器,需根据业务负载(如数据库、虚拟机)适当增加。

问题2:swap使用率为0是否正常?
解答:swap使用率为0通常是正常的,说明系统当前物理内存充足,未启用swap,但需结合系统负载判断:若内存使用率已接近100%(如free -hMemavailable接近0),而swap仍为0,可能存在内存泄漏风险,需检查进程内存占用;若内存使用率较低(如available充足),swap为0则完全正常,无需处理。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/15486.html

(0)
酷番叔酷番叔
上一篇 2025年8月23日 21:04
下一篇 2025年8月23日 21:15

相关推荐

  • linux服务器如何查询cpu的使用信息

    在Linux服务器运维中,实时监控CPU使用情况是保障系统稳定运行的关键,通过命令行工具可以高效获取CPU的实时负载、核心利用率、进程分布等详细信息,以下是常用查询方法及具体操作解析,top命令:实时监控CPU与进程状态top是最常用的动态监控工具,默认每3秒刷新一次数据,可直观查看CPU整体及各核心使用率、进……

    2025年9月9日
    6900
  • 修改前必须知道哪些要点?

    在Linux系统中修改MAC地址(Media Access Control Address)是网络管理中的常见操作,通常用于隐私保护、网络故障排查或绕过MAC地址绑定限制,以下详细指南涵盖临时修改和永久修改两种方式,请确保您拥有合法授权(如修改自有设备),避免违反网络政策,合法性:仅在授权设备上操作,未经授权修……

    2025年7月23日
    10200
  • Linux环境变量如何设置?操作步骤与方法详解

    在Linux系统中,环境变量是操作系统和用户交互的重要桥梁,它们存储了系统运行所需的配置信息,如可执行文件搜索路径(PATH)、默认编辑器(EDITOR)、用户家目录(HOME)等,正确设置环境变量不仅能提升操作效率,还能确保程序正常运行,本文将详细介绍Linux环境变量的设置方法、作用范围及注意事项,环境变量……

    2025年8月27日
    8400
  • 新机器安装Linux系统时频繁蓝屏是什么原因该如何解决?

    新机器安装Linux系统时遇到蓝屏问题,通常与硬件兼容性、安装配置或驱动加载有关,新硬件可能因内核版本不支持或默认驱动冲突导致系统崩溃,需从安装前准备到系统配置逐步排查,安装前需确认硬件兼容性,新机器的CPU、主板芯片组、显卡等硬件可能较新,Linux内核可能未完全适配,可通过查阅硬件厂商提供的Linux兼容性……

    2025年8月25日
    9800
  • Linux下如何查看FTP服务的运行状态?

    在Linux系统中,FTP(File Transfer Protocol)是一种常用的文件传输协议,广泛应用于文件共享、数据备份等场景,正确查看和管理FTP服务是系统管理员的基本技能,本文将详细介绍在Linux系统中查看FTP服务的多种方法,包括服务运行状态、端口监听情况、配置文件内容、日志信息及用户权限等,并……

    2025年9月24日
    7800

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信