4-linux命令-服务器资源

38 阅读12分钟

大纲

推荐命令作用
df显示磁盘总容量、可用空间
mount查看磁盘挂载
lscpu查看cpu
wcpu负载
free查看内存
vmstatlinux系统监控工具
dmidecodeLinux系统中提取硬件信息

df

  • 参数

    参数功能描述示例
    -a显示所有文件系统,包括虚拟文件系统(如/proc)df -a
    -h以GB/MB/KB等易读格式显示df -h
    -H类似-h,但采用1000进制(1k=1000字节)df -H
    -i显示inode数量使用情况,而非磁盘容量df -i
    -T显示文件系统类型(如ext4、tmpfs)df -T
    -t仅显示指定类型的文件系统df -t ext4
    -l只显示本地文件系统,忽略网络文件系统df -l
  • 示例

    • df -i

      文件系统Inode已用(I)可用(I)已用(I)%挂载点
      /dev/xxxx4934451227353493171591%/
      /dev/sda15242883265239621%/boot

      有时候会发现磁盘没满,但会报异常,就是可能inode值满了, 一般出现在文件之类的服务上,可以查看补充inode说明

    • df -Th

      ~]# df -Th
      文件系统                类型      容量  已用  可用 已用% 挂载点
      /dev/mapper/centos-root xfs        95G  1.4G   93G    2% /
      /dev/sda1               xfs      1014M  133M  882M   14% /boot
      

mount

  • 基础参数

    参数/选项作用示例
    -a挂载 /etc/fstab 中所有设备mount -a
    -t 类型指定文件系统类型-t iso9660(光盘)、-t ntfs(Windows分区)
    -o 选项设置挂载属性ro(只读)、rw(读写)、noatime(不更新访问时间)
    -r等价于 -o ro,只读挂载mount -r /dev/cdrom /mnt/cdrom
  • 场景化挂载选项(-o参数)

    选项功能说明适用场景
    loop将文件视为块设备挂载挂载ISO镜像:-o loop
    ro/rw只读/读写模式挂载(默认rw光盘镜像需ro
    iocharset指定字符集(解决中文乱码)Windows分区:iocharset=cp936
    soft/hardNFS挂载模式(软挂载超时终止/硬挂载持续重试)NFS网络共享
  • 示例-临时挂载

    • 挂载光盘

      mkdir /mnt/cdrom  # 创建挂载点 
      mount -t iso9660 /dev/cdrom /mnt/cdrom
      
    • 挂载 NFS

      mount -t nfs nfs服务器:/path/to/abs /本机挂载目录
      
    • 挂载NTFS移动硬盘

      mount -t ntfs -o rw,iocharset=cp936 /dev/sdc1 /mnt/usbhd
      ​
      # iocharset 指定字符集(解决中文乱码)   Windows分区:iocharset=cp93612
      

/etc/fstab

  • 参数

    字段顺序字段名含义取值说明
    1设备标识要挂载的设备或文件系统设备路径(如 /dev/sda1)、UUID、LABEL、伪文件系统名(如 proc
    2挂载点挂载的目录路径必须为已存在的目录(如 /mnt/data
    3文件系统类型设备的文件系统格式ext4/xfs/nfs/tmpfs/proc 等,auto 表示自动检测
    4挂载选项挂载时的行为参数多选项用逗号分隔(如 defaults,noatime
    5转储频率(dump控制 dump 备份工具的备份频率0(不备份)、1(每日备份)、2(隔日备份)
    6自检次序(pass开机磁盘自检顺序0(不自检)、1(根目录优先)、2(次级目录
  • 挂载选项(第4列)详解

    常用选项适用文件系统功能说明
    defaults通用默认组合:rw, suid, dev, exec, auto, nouser, async
    noatimeext4/xfs不更新文件访问时间,提升性能
    size=50%tmpfs限制内存文件系统最大占用内存比例(如 size=50%
    ro/rw通用只读/读写模式
    nofail通用设备不存在时忽略错误,防止启动卡死
  • 示例

    • 配置示例

      # 设备标识       挂载点    文件系统  挂载选项       dump pass 
      UUID=6efb8a23... /boot    xfs      defaults       0    0
      proc             /proc    proc     defaults       0    0
      tmpfs            /tmp     tmpfs    size=50%,noatime 0    0
      
    • 挂载 NFS

      # 设备标识             挂载点      文件系统  挂载选项  dump pass 
      nfs服务器:/path/to/abs /本机挂载目录 nfs   default   0    0 
      
    • 挂载NTFS移动硬盘

      # 设备标识      挂载点      文件系统  挂载选项            dump pass 
      /dev/sdc1     /mnt/usbhd  ntfs    rw,iocharset=cp936  0 0
      

/proc/mounts

当写入/etc/fstab系统自动挂载之后这里会生成条目

lscpu

  • 命令查看

    [root@localhost ~]# lscpu
    Architecture:          x86_64
    CPU op-mode(s):        32-bit, 64-bit
    Byte Order:            Little Endian
    CPU(s):                4
    ....
    型号名称:        12th Gen Intel(R) Core(TM) i5-12490F
    步进:              2
    .....
    # flags需要注意一下,有一些包需要依赖包架构支撑, 如果安装包有要求可以先检查一下
    Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 arat umip gfni vaes vpclmulqdq spec_ctrl intel_stibp flush_l1d arch_capabilities
    
  • 用文件查看

    ~]# cat /proc/cpuinfo
    processor	: 0
    vendor_id	: GenuineIntel
    cpu family	: 6
    model		: 151
    model name	: 12th Gen Intel(R) Core(TM) i5-12490F
    ....
    flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl ....
    bogomips	: 5990.39
    clflush size	: 64
    cache_alignment	: 64
    address sizes	: 45 bits physical, 48 bits virtual
    
    # 会将每核每线程的cpu都打印出来
    

w

  • 参数

    参数作用示例输出变化
    -h隐藏头部系统概览信息仅保留用户详情表
    -s精简模式,不显示登录时间、JCPU/PCPU减少列数,突出用户和当前命令
    -f显示远程登录来源(FROM列)默认不显示,需手动开启
    -u忽略用户名,仅显示进程和CPU时间USER列以-代替实际用户名
  • 示例

    • 直接使用 w

      模块说明示例数据
      系统概览当前时间、运行时长、登录用户数、1/5/15分钟平均负载20:37:13 up 1:20, 1 user, load average: 0.00, 0.01, 0.05
      用户详情用户名、终端类型、登录来源、登录时间、空闲时间、进程占用CPU时间、当前命令root pts/0 192.168.189.1 19:26 1.00s 0.53s 0.03s w

free

  • 参数

    参数说明
    -b/-m/-g以字节/MB/GB为单位
    -h易读格式
    -o不显示-/+buffers/cache行
    -t显示RAM + swap的总和
    -s n刷新间隔为n秒
    -c n刷新n次后即退出
  • 示例 -- 用命令查看

    • 以字节为单位

      [root@localhost cc]# free -b
                    total        used        free      shared  buff/cache   available
      Mem:    10464804864   171970560 10020167680    12226560   272666624  9999290368
      Swap:    5234487296           0  5234487296
      
    • 以MB为单位

      [root@localhost cc]# free -m 
                    total        used        free      shared  buff/cache   available
      Mem:           9980         163        9556          11         260        9536
      Swap:          4991           0        4991
      
    • 以GB为单位

      [root@localhost cc]# free -g 
                    total        used        free      shared  buff/cache   available
      Mem:              9           0           9           0           0           9
      Swap:             4           0           4
      
    • 易读格式

      [root@localhost cc]# free -h
                    total        used        free      shared  buff/cache   available
      Mem:           9.7G        163M        9.3G         11M        260M        9.3G
      Swap:          4.9G          0B        4.9G
      
    • swap跟物理内存总数

      [root@localhost cc]# free -th
                    total        used        free      shared  buff/cache   available
      Mem:           9.7G        163M        9.3G         11M        260M        9.3G
      Swap:          4.9G          0B        4.9G
      Total:          14G        163M         14G
      
  • 用文件查看:

    ~]# cat /proc/meminfo 
    MemTotal:       10219536 kB
    MemFree:         9911528 kB
    MemAvailable:    9815168 kB
    Buffers:            2108 kB
    Cached:            87380 kB
    SwapCached:            0 kB
    Active:            66212 kB
    Inactive:          69456 kB
    

vmstat

参考:Linux vmstat命令详解

(virtual memory statistics)用于展现给定时间间隔的服务器状态值,包括进程、内存、IO、系统中断、上下文切换及CPU时间等信息,主要功能是识别系统瓶颈,其语法形式为 vmstat [选项] [delay [count]],其中 delay 为数据更新间隔(秒),count 为输出次数;若仅指定 delay 则无限次输出,直至手动结束

  • 参数

    参数含义应用场景
    -a显示活跃/非活跃内存分析内存回收压力
    -d显示磁盘I/O统计诊断磁盘性能瓶颈
    -p <分区>指定分区的I/O统计监控特定磁盘分区(如 /dev/sda1
    -s显示内存事件汇总(如缺页、交换)排查内存泄漏或频繁交换问题
    -t输出时增加时间戳记录性能波动时间点
    -w宽输出模式(适配大屏幕)避免字段换行,提升可读性
    <间隔> <次数>设置刷新间隔(秒)和输出次数动态监控系统状态(如每2秒刷新1次)
    • -S:使用指定单位显示。 参数有 k 、K 、m 、M,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)
  • 示例

    • vmstat <间隔> <次数>

      # 基础实时监控(每2秒刷新,共2次)
      [root@localhost ~]# vmstat  2 2
      procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
       r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
       1  0      0 9901208   2108 144832    0    0    36     2   42   64  0  0 99  0  0
       0  0      0 9901308   2108 144832    0    0     0     0   94   46  0  0 100  0  0
       
      # 若 r 持续 > CPU 核心数,且 id < 20% → CPU 不足。
      # 若 free 接近 0,si/so > 0 → 内存不足。
      
      • 关键参数

        • procs(进程):

          • r:运行队列中的进程数(若长期 > CPU 核心数,说明 CPU 繁忙)。
          • b:等待 I/O 的阻塞进程数(>0 可能存在 I/O 瓶颈)。
        • memory(内存,单位 KB/MB):

          • swpd:已使用的虚拟内存(Swap)。
          • free:空闲的物理内存。
          • buff/cache:用于缓冲和缓存的内存。
        • swap(交换分区):

          • si:从磁盘写入 Swap 的数据量(KB/s)。
          • so:从 Swap 读回内存的数据量(KB/s)。
          • 若 si/so 长期 > 0,说明内存不足。
        • io(磁盘 I/O):

          • bi:从磁盘读取的块数(blocks/s)。
          • bo:写入磁盘的块数(blocks/s)。
          • 高值可能表示磁盘繁忙。
        • system(系统):

          • in:每秒中断次数(包括时钟中断)。
          • cs:每秒上下文切换次数。
          • 过高可能因进程频繁调度。
        • cpu(CPU 使用率):

          • us:用户进程占用 CPU 时间百分比。
          • sy:系统内核占用 CPU 时间百分比。
          • id:空闲 CPU 百分比。
          • wa:等待 I/O 的 CPU 时间百分比(>10% 可能存在 I/O 瓶颈)。
          • st:被虚拟机偷取的时间(仅虚拟化环境)。
    • 汇总内存使用情况

      ~]# vmstat -s
           10219536 K total memory
             171976 K used memory
              67008 K active memory
              77184 K inactive memory
            9900164 K free memory
               2108 K buffer memory
             145288 K swap cache
            5111804 K total swap
      
    • 检查磁盘 I/O

      ~]#  vmstat -d  1  # 每隔1秒刷次一次
      disk- ------------reads------------ ------------writes----------- -----IO------
             total merged sectors      ms  total merged sectors      ms    cur    sec
      sda     3774      2  215224     738    286     38   14237     255      0      0
      sr0       18      0    2056      27      0      0       0       0      0      0
      dm-0    2660      0  190429     580    320      0   10141     287      0      0
      dm-1      90      0    4920      22      0      0       0       0      0      0
      
      # 若 bi/bo 持续高,且 wa > 10% → 磁盘 I/O 瓶颈。
      

dmidecode

dmidecode 使用 SMBIOS/DMI 标准,在Linux下收集相关硬件信息

  • 使用 -s 获取参数

    dmidecode -s 会打印出来关键字

    关键字功能描述示例命令输出效果(示例)
    system-product-name获取服务器/设备型号dmidecode -s system-product-nameEVT2236MT
    system-serial-number获取系统序列号(唯一标识)dmidecode -s system-serial-numberABC12345678
    system-uuid获取系统UUID(硬件级唯一ID)dmidecode -s system-uuid6a4357e6-062e-7b62-82d2...
    processor-version获取CPU型号全称dmidecode -s processor-versionIntel(R) Xeon(R) E-2236...
    baseboard-product-name获取主板型号dmidecode -s baseboard-product-namePRIME B250M-J
    • 示例

      • 获取CPU型号

        ]# dmidecode -t processor | grep Version | head -n 1
        ]# dmidecode -s processor-version
        	Version: 12th Gen Intel(R) Core(TM) i5-12490F
        
      • 获取服务器型号

        ]# dmidecode | grep 'Product Name'
        ]# dmidecode -s system-product-name
        	Product Name: VMware Virtual Platform
        	Product Name: 440BX Desktop Reference Platform
        
      • 获取主机序列号

        ]# dmidecode -s system-serial-number
        VMware-56 4d 83 35 b6 1a ca 95-e6 c4 c9 f3 b6 e8 69 cd
        
      • 查看内存的汇总信息

        ]# dmidecode|grep -P -A5 "Memory\s+Device"|grep Size|grep -v Range | grep -v "No Module Installed"
        	Size: 2048 MB
        
      • 查看主板支持的最大内存

        ]# dmidecode|grep 'Maximum Capacity'
        	Maximum Capacity: 161 GB
        
      • Linux系统查看内存规格信息

        ]# dmidecode|grep -A16 'Memory Device'|grep 'Speed'
        Speed: 1333 MHz
        Speed: 1333 MHz
        
  • -t 参数

    参数说明
    1服务器(序列号)
    2主板(制造商、型号、序列号)
    4处理器(型号、核心数、频率)
    16最大支持内存
    17内存(插槽容量、频率)

补充

inode

inode(index node)表中包含文件系统所有文件列表一个节点 (索引节点)是在一个表项,包含有关文件的信息( 元数据 ),包括

  • 文件类型,权限,UID,GID
  • 链接数(指向这个文件名路径名称个数)
  • 该文件的大小和不同的时间戳
  • 指向磁盘上文件的数据块指针
  • 有关文件的其他数据
  • 一般inode表会占用文件系统磁盘空间的 1%, 使用df -i命令可以看到当前还有多少可以或占用的资源