Linux服务器常见的监控指令解析

举报
tea_year 发表于 2025/11/07 10:22:45 2025/11/07
【摘要】 在 Linux 中监控 CPU、内存、磁盘、网络的指令非常丰富,以下是 最常用、实用的监控指令,按 “指标分类 + 指令详解 + 核心用法” 整理,新手也能快速上手:一、CPU 监控(核心:查看负载、使用率、进程占用)1. top(实时监控,最常用)功能:实时显示系统整体 CPU 负载、进程 CPU 占用排名(默认每 3 秒刷新)。核心用法:top # 直接运行,进入实时监控界面界面关键信...
在 Linux 中监控 CPU、内存、磁盘、网络的指令非常丰富,以下是 最常用、实用的监控指令,按 “指标分类 + 指令详解 + 核心用法” 整理,新手也能快速上手:

一、CPU 监控(核心:查看负载、使用率、进程占用)

1. top(实时监控,最常用)

  • 功能:实时显示系统整体 CPU 负载、进程 CPU 占用排名(默认每 3 秒刷新)。
  • 核心用法
    top  # 直接运行,进入实时监控界面
    


  • 界面关键信息
    • 第一行:Cpu(s): 20.0%us(用户态 CPU 使用率)、5.0%sy(内核态 CPU 使用率)、75.0%id(空闲 CPU 使用率)。
    • 第三行:%Cpu0~%CpuN(多核心 CPU 各自使用率)。
    • 进程列:%CPU(单个进程占用 CPU 百分比)。
  • 常用快捷键
    • P:按 CPU 使用率排序(默认正序)。
    • 1:显示所有 CPU 核心的详细使用率。
    • q:退出监控。

2. htop(top 增强版,更直观)

  • 功能:比 top 界面更友好,支持鼠标操作、颜色区分进程状态。
  • 核心用法
    # 先安装(Ubuntu/Debian):sudo apt install htop
    # 先安装(CentOS/RHEL):sudo yum install htop
    htop  # 运行后直接查看,默认按 CPU 排序
    

3. mpstat(查看多 CPU 核心详情)

  • 功能:专门统计单个 / 所有 CPU 核心的使用率,适合分析 CPU 负载不均衡问题。
  • 核心用法
    mpstat  # 查看所有 CPU 平均使用率
    mpstat -P ALL  # 显示每个 CPU 核心的详细数据(0 代表第一个核心,1 代表第二个,以此类推)
    mpstat 1 5     # 每 1 秒刷新一次,共刷新 5 次(适合持续监控
    

4. pidstat(查看单个进程的 CPU 占用)

  • 功能:精准定位某个进程的 CPU 使用情况(避免 top 刷屏)。
  • 核心用法
    pidstat -u 1 3  # 每 1 秒统计一次所有进程的 CPU 使用率,共 3 次
    pidstat -u -p 1234 1 3  # 只监控 PID=1234 的进程,每 1 秒刷新,共 3 
    

二、内存监控(核心:查看总内存、已用 / 空闲内存、进程内存占用)

1. free(快速查看内存使用概况)

  • 功能:显示物理内存(RAM)和交换分区(Swap)的总容量、已用、空闲数据。
  • 核心用法
    free -h  # -h:以人类可读单位(GB/MB)显示(推荐)
    free -m  # 以 MB 为单位显示
    


  • 输出示例
                  total        used        free      shared  buff/cache   available
    Mem:           15Gi       2.3Gi        10Gi       342Mi       3.1Gi        12Gi
    Swap:          19Gi          0B        19Gi
    

    • 关键指标:available(实际可分配给新进程的内存,含空闲 + 缓存可释放部分),比 free 更能反映真实内存状态。

2. top/htop(实时查看进程内存占用)

  • 核心用法:运行 top  htop 后,关注进程列:
    • %MEM:进程占用物理内存的百分比。
    • VIRT:进程虚拟内存大小(含共享库、交换空间)。
    • RES:进程实际占用的物理内存大小(不含共享库,核心指标)。
  • 快捷键:M(按内存使用率排序)。

3. vmstat(监控内存 + CPU+IO 整体状态)

  • 功能:综合监控内存交换、页面调度、CPU 负载,适合排查内存瓶颈。
  • 核心用法
    vmstat 1 5  # 每 1 秒刷新一次,共 5 次
    

  • 关键输出
    • si(Swap in):从交换分区读入内存的数据量(越大说明内存不足,频繁使用 Swap)。
    • so(Swap out):从内存写入交换分区的数据量(同上,si/so 长期非 0 代表内存紧张)。

三、磁盘监控(核心:查看磁盘容量、IO 负载、分区使用)

1. df(查看磁盘分区容量)

  • 功能:显示所有挂载分区的总容量、已用空间、空闲空间、使用率。
  • 核心用法
    df -h  # -h:人类可读单位(GB/MB),推荐
    df -T  # 显示分区文件系统类型(ext4、xfs 等)
    df -h /home  # 只查看 /home 分区的容量情况
    


2. du(查看目录 / 文件占用磁盘空间)

  • 功能:统计单个目录或文件的磁盘占用大小(df 看分区整体,du 看具体文件 / 目录)。
  • 核心用法
    du -sh /var/log  # 统计 /var/log 目录总占用(-s:只显示总和,-h:人类可读)
    du -h --max-depth=1 /home  # 显示 /home 下一级目录的占用情况(不递归子目录)
    du -h /home/user/*.log  # 统计指定类型文件的占用
    


3. iostat(监控磁盘 IO 负载)

  • 功能:查看磁盘的读写速度、IO 等待时间(判断磁盘是否繁忙)。
  • 核心用法
    iostat -x 1 5  # -x:显示详细 IO 指标,每 1 秒刷新,共 5 次
    iostat -x -d sda 1 5  # 只监控 sda 磁盘(如 /dev/sda)的 IO 状态
    

  • 关键指标
    • %util:磁盘 IO 使用率(接近 100% 说明磁盘繁忙,可能是瓶颈)。
    • tps:每秒 IO 请求数(读 + 写)。
    • rMB/s/wMB/s:每秒读 / 写数据量(MB)。

4. iotop(磁盘 IO 进程排名)

  • 功能:类似 top,但按磁盘 IO 使用率排序,精准定位 “谁在占用磁盘 IO”。
  • 核心用法
    # 安装:sudo apt install iotop(Ubuntu)/ sudo yum install iotop(CentOS)
    iotop  # 运行后查看,默认按 IO 使用率排序
    iotop -o  # 只显示正在进行 IO 操作的进程(过滤空闲进程,更清晰)
    


四、网络监控(核心:查看网络连接、带宽占用、网卡状态)

1. ifstat(查看网卡带宽占用)

  • 功能:实时显示每个网卡的收发带宽(字节 / 秒、包 / 秒)。
  • 核心用法:
    # 安装:sudo apt install ifstat(Ubuntu)/ sudo yum install ifstat(CentOS)
    ifstat  # 实时监控所有网卡带宽
    ifstat -i eth0 1 5  # 只监控 eth0 网卡,每 1 秒刷新,共 5 次
    

  • 输出示例
    eth0                wlan0       
    KB/s in  KB/s out   KB/s in  KB/s out
    0.00     0.00        0.00     0.00
    1.20     3.40        0.00     0.00  # 实时收发速率
    

2. iftop(网络带宽进程排名)

  • 功能:按进程 / IP 的网络带宽占用排序,直观查看 “谁在占用网络”。
  • 核心用法
    # 安装:sudo apt install iftop(Ubuntu)/ sudo yum install iftop(CentOS)
    iftop -i eth0  # 监控 eth0 网卡的带宽占用
    

  • 界面快捷键
    • N:显示 IP 地址(默认显示主机名,按 N 切换)。
    • P:显示端口号(如 80、443)。
    • q:退出。

3. netstat(查看网络连接状态)

  • 功能:列出所有网络连接(TCP/UDP)、监听端口、进程 PID。
  • 核心用法(常用组合参数):
    netstat -tuln  # 查看所有监听的 TCP/UDP 端口(-t:TCP,-u:UDP,-l:监听,-n:数字显示端口)
    netstat -anp   # 查看所有网络连接(含 ESTABLISHED 连接)及对应进程 PID(-a:所有连接,-p:显示进程)
    netstat -anp | grep 80  # 过滤端口 80 的连接(排查 HTTP 服务)
    

4. ss(netstat 替代版,更快更高效)

  • 功能:与 netstat 功能一致,但性能更好(大并发连接下不卡顿),推荐优先使用。
  • 核心用法
    ss -tuln  # 等价于 netstat -tuln(查看监听端口)
    ss -anp   # 等价于 netstat -anp(查看所有连接+进程)
    ss -anp | grep 443  # 过滤 HTTPS 端口(443)的连接
    

5. ping(测试网络连通性)

  • 功能:测试与目标 IP / 域名的网络连通性(基于 ICMP 协议)。
  • 核心用法
    ping baidu.com  # 持续 ping 百度,测试连通性
    ping -c 4 baidu.com  # 只 ping 4 次(避免持续刷屏)
    

五、综合监控工具(一次性监控所有指标)

如果想同时监控 CPU、内存、磁盘、网络,推荐用以下工具:

1. glances(全能监控工具)

  • 功能:一站式监控所有系统指标,支持 Web 界面、远程监控。
  • 核心用法
    # 安装:sudo apt install glances(Ubuntu)/ sudo yum install glances(CentOS)
    glances  # 本地实时监控(界面含 CPU、内存、磁盘、网络、进程排名)
    glances -w  # 启动 Web 服务,浏览器访问 http://服务器IP:61208 查看监控
    

总结:常用指令速查表

监控指标 快速查看指令 详细分析指令
CPU top / htop mpstatpidstat -u
内存 free -h top(按 M 排序)、vmstat
磁盘容量 df -h du -sh 目录
磁盘 IO iostat -x iotop
网络带宽 ifstat iftop
网络连接 ss -tuln / ss -anp netstat -anp
综合监控 glances
根据需求选择即可:快速排查用 top+free -h+df -h+ss;精准定位问题用 pidstat+iotop+iftop
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。