菜鸟科技网

Linux资源监控命令有哪些常用选项?

Linux资源监控是系统管理员和开发人员日常工作中不可或缺的一部分,通过实时或历史数据掌握CPU、内存、磁盘、网络等资源的使用情况,能够快速定位性能瓶颈、排查故障以及优化系统配置,以下是Linux系统中常用的资源监控命令及其详细使用方法,涵盖基础工具和进阶分析手段。

Linux资源监控命令有哪些常用选项?-图1
(图片来源网络,侵删)

CPU监控命令

CPU是系统的核心资源,监控其使用率、负载和进程级占用情况是性能分析的基础。

  1. top
    top 是动态实时监控工具,默认按CPU使用率排序,显示进程信息,常用参数包括:

    • -d:设置刷新间隔(如-d 5每5秒刷新)。
    • -p:监控指定进程ID(如-p 1234)。
    • -c:显示完整的命令行而非进程名。
      输出中,%us(用户空间占用)、%sy(内核占用)、%id(空闲)等列直观反映CPU负载。
  2. htop
    htoptop的增强版,支持颜色区分、鼠标操作、进程树形展示,更易用,安装后直接运行,可通过F6选择排序字段,F2设置显示列。

  3. mpstat
    属于sysstat工具包,用于多核CPU的详细统计,例如mpstat -P ALL 1每秒输出各核心的使用率,%usr%nice%sys等字段区分不同类型的CPU占用。

    Linux资源监控命令有哪些常用选项?-图2
    (图片来源网络,侵删)
  4. uptime
    显示系统平均负载(1分钟、5分钟、15分钟),负载值超过CPU核心数时可能表示过载,例如uptime输出load average: 0.5, 0.8, 1.2,其中1.2为15分钟均值。

内存监控命令

内存不足会导致系统缓慢或OOM(Out of Memory)错误,需重点关注使用率和缓存占用。

  1. free
    free -h以人类可读格式(GB/MB)显示内存总量、已用、空闲、缓冲/缓存等。-m强制以MB为单位,关键列:-/+ buffers/cache为实际可用内存(等于free+buffers+cache)。

  2. vmstat
    vmstat 1每秒输出内存、进程、IO等摘要信息。si(swap in)、so(swap out)频繁表示内存不足;buff(缓冲区)、cache(缓存)占用高属正常,可通过释放缓存(如sync; echo 1 > /proc/sys/vm/drop_caches)临时清理。

    Linux资源监控命令有哪些常用选项?-图3
    (图片来源网络,侵删)
  3. smem
    需安装smem工具,可按进程/用户精确计算内存占用(区分PSS、USS等指标),避免top中因缓存统计导致的误差。

磁盘监控命令

磁盘IO性能直接影响文件读写速度,需关注使用率、IOPS和延迟。

  1. df
    df -h显示各分区的磁盘使用率、挂载点等。-i查看inode使用情况,inode耗尽会导致无法创建文件。

  2. du
    du -sh *统计当前目录下各子目录大小,-h人性化显示,--max-depth=1限制递归深度,例如du -sh /var/log查看日志目录占用。

  3. iostat
    iostat -xz 1(需sysstat)显示磁盘设备(如sda)的%util(使用率)、await(平均延迟)、r/s/w/s(读写请求数)。%util超过70%可能表示IO瓶颈。

  4. iotop
    类似top的磁盘IO监控工具,-o只显示正在IO操作的进程,直观定位高IO进程。

网络监控命令

网络流量异常可能意味着DDoS攻击或应用配置问题,需实时监控带宽和连接状态。

  1. iftop
    iftop按带宽使用率排序显示实时流量,支持-n(不解析域名)、-P(按端口显示),安装后运行,界面显示发送/接收流量及对应IP。

  2. netstat
    netstat -an显示所有网络连接(-tTCP、-uUDP、-n数字格式),-l只监听端口,-p显示进程ID,例如netstat -tuln | grep :80查看80端口监听情况。

  3. ss
    ssnetstat的替代品,速度更快。ss -tuln显示TCP/UDP监听端口,ss -tp查看TCP连接对应的进程。

  4. nethogs
    按进程统计实时网络带宽占用,-d设置刷新间隔,适合定位高流量进程。

综合监控工具

  1. glances
    Python开发的全能监控工具,glances -t 5每5秒刷新,整合CPU、内存、磁盘、网络、进程等信息,支持Web界面(-w)。

  2. dstat
    dstat -tcmnd --top-cpu同时显示CPU、内存、网络、磁盘IO及Top进程,参数灵活,可自定义输出列。

常用监控命令速查表

监控目标 命令 关键参数/用途
CPU top -d刷新间隔,-p指定进程
mpstat -P ALL各核心统计
内存 free -h人性化显示,-mMB单位
vmstat si/soswap交换,buff/cache缓冲/缓存
磁盘 df -h使用率,-iinode使用率
iostat %util使用率,await延迟
网络 iftop -n数字IP,-P按端口统计
ss -tuln监听端口,-tpTCP连接进程
综合 glances -t间隔,-wWeb界面

相关问答FAQs

Q1: 如何定位导致CPU使用率100%的进程?
A1: 可通过以下步骤定位:

  1. 运行top -d 1htop,按%CPU列排序,找到占用最高的进程。
  2. top%wa(IO等待)高,可能是磁盘瓶颈,用iotop检查IO进程。
  3. 若为用户进程,可结合strace -p PID跟踪系统调用,或perf top -p PID分析CPU热点函数。
  4. 若为内核进程(如ksoftirqd),需检查驱动或硬件问题。

Q2: 如何判断内存是否不足?
A2: 通过以下指标综合判断:

  1. free -havailable-/+ buffers/cache持续低于10%总内存,且si/so(vmstat)非零,表示内存不足触发swap。
  2. 应用频繁OOM(日志中出现Out of memory: Killed process),或响应缓慢。
  3. 缓存/缓冲区占用过高(如buff/cache占80%内存)但系统仍卡顿,可通过echo 3 > /proc/sys/vm/drop_caches释放后观察性能是否恢复,若恢复则需扩容内存或优化应用内存使用。
分享:
扫描分享到社交APP
上一篇
下一篇