服务器测评网
我们一直在努力

Linux交换分区查看命令是什么?如何查看大小和使用情况?

在Linux系统中,交换分区(Swap Partition)是虚拟内存的重要组成部分,它作为物理内存的延伸,当系统内存不足时,会将部分暂时不用的数据从RAM转移到交换分区中,从而为当前运行的程序释放更多内存空间,掌握交换分区的查看方法,对于系统性能监控、资源优化及故障排查至关重要,本文将详细介绍多种查看Linux交换分区的方式,涵盖基础命令、进阶分析及可视化工具,帮助用户全面掌握交换分区的状态信息。

Linux交换分区查看命令是什么?如何查看大小和使用情况?

使用free命令快速查看交换分区概况

free命令是Linux中最直观查看内存使用情况的工具,默认以KB为单位显示系统内存、交换分区及缓冲区的使用状态,通过添加不同参数,可以获取更详细的信息。

基础用法

直接执行free命令,会输出简化的内存摘要:

free

输出结果中,Swap行即为交换分区的信息,包括total(总大小)、used(已使用)、free(空闲)及shared(共享内存)、buff/cache(缓冲/缓存)等列。

              total        used        free      shared  buff/cache   available
Swap:          2047          512        1535           0           0        1535

此处显示交换分区总大小为2047MB,已使用512MB,空闲1535MB。

进阶参数

  • -h(human-readable):以人类可读格式显示(如GB、MB):
    free -h

    输出更直观,例如Swap: 2.0G 512M 1.5G

  • -s(seconds)+ -n(count):动态监控交换分区使用情况,例如每2秒刷新一次,共刷新5次:
    free -s 2 -n 5

    适用于观察交换分区在运行时的动态变化。

通过swapon命令查看交换分区详细信息

swapon命令用于管理系统交换空间,其--show参数可以清晰列出当前所有激活的交换分区的详细信息,包括文件/设备名、类型、大小及优先级。

基础用法

swapon --show

对于交换分区,输出可能如下:

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

其中NAME为交换分区设备名,TYPE为分区类型(如partitionfile),SIZE为总大小,USED为已使用量,PRIO为优先级(数值越小优先级越高,系统会优先使用高优先级交换空间)。

结合grep过滤特定信息

若系统有多个交换分区,可通过grep筛选特定设备:

swapon --show | grep /dev/sda2

检查/proc/swaps文件获取原始交换分区数据

Linux内核会将交换分区信息存储在/proc/swaps文件中,这是一个虚拟文件,直接反映内核当前的交换空间状态。

Linux交换分区查看命令是什么?如何查看大小和使用情况?

cat /proc/swaps

输出格式与swapon --show类似,

Filename         Type        Size      Used    Priority
/dev/sda2        partition   2097148   524288  -2

其中Filename为设备名,SizeUsed单位为KB(需手动换算为GB/MB)。

结合awk提取关键数据

若需仅提取交换分区总大小,可使用awk

cat /proc/swaps | awk 'NR>1{sum+=$3} END{print sum/1024/1024 "GB"}'

此命令会计算所有交换分区的总大小并以GB为单位输出。

使用lsblkfdisk查看交换分区的磁盘布局

若需了解交换分区在磁盘中的具体位置(如所属磁盘、分区编号等),可通过lsblkfdisk工具查看磁盘分区信息。

lsblk命令

lsblk | grep SWAP

或显示所有分区并筛选标记为SWAP的分区:

lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT | grep swap

输出示例:

sda2  swap  2G  

表明/dev/sda2是交换分区,大小为2GB。

fdisk命令

sudo fdisk -l | grep swap

此命令会列出所有磁盘分区,并筛选文件系统类型为swap的分区,同时显示分区起始/结束扇区及大小。

通过vmstat命令监控交换分区的活动情况

vmstat是虚拟统计工具,可实时监控系统内存、交换分区、CPU等资源的使用情况,重点关注si(从交换分区写入内存的数据量)和so(将内存数据写入交换分区的数据量)列。

基础用法

vmstat

在输出结果中,siso列单位为KB/s,若持续为非零值,可能表明系统内存不足,频繁使用交换分区,影响性能。

Linux交换分区查看命令是什么?如何查看大小和使用情况?

动态监控

vmstat 1 5

每秒刷新一次,共5次,观察交换分区的读写活动趋势。

使用smem工具分析交换分区的精确占用

smem是一个更高级的内存分析工具,可精确显示进程的物理内存和交换内存占用,尤其适合排查哪些进程导致交换空间过度使用。

安装`smem“`

若系统未安装,需先通过包管理器安装(如Ubuntu/Debian):

sudo apt install smem

查看进程交换内存占用

smem --swap

输出会列出每个进程的Swap字段,即该进程占用的交换空间大小,单位为KB,可结合sort排序找出占用最高的进程:

smem --swap | sort -k4 -nr | head -10

交换分区状态分析与优化建议

通过上述命令获取交换分区信息后,需结合系统状态进行合理分析:

  1. 交换分区使用率过高:若freeswapon --show显示used占比持续超过80%,且vmstatsi/so列频繁非零,可能表明物理内存不足,建议:

    • 增加物理内存;
    • 优化应用程序内存使用;
    • 调整swappiness参数(通过cat /proc/sys/vm/swappiness查看,默认60,可临时调整如sudo sysctl vm.swappiness=30)。
  2. 交换分区未激活:若swapon --show无输出或free显示Swap总大小为0,需检查交换分区是否正确挂载:

    sudo swapon -a  # 激活所有配置的交换空间

Linux交换分区的查看方法多样,从基础的free到专业的smem,可根据需求选择合适的工具,通过综合分析交换分区的大小、使用率、活动进程等信息,可有效监控系统内存状态,及时优化资源配置,保障系统稳定运行,掌握这些命令,不仅能提升运维效率,也为深入理解Linux内存管理机制提供了实践基础。

赞(0)
未经允许不得转载:好主机测评网 » Linux交换分区查看命令是什么?如何查看大小和使用情况?