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

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

linux资源监控命令
(图片来源网络,侵删)

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资源监控命令
    (图片来源网络,侵删)
  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. 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进程,参数灵活,可自定义输出列。

常用监控命令速查表

监控目标命令关键参数/用途
CPUtop-d刷新间隔,-p指定进程
mpstat-P ALL各核心统计
内存free-h人性化显示,-mMB单位
vmstatsi/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释放后观察性能是否恢复,若恢复则需扩容内存或优化应用内存使用。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/424536.html<

(0)
运维的头像运维
上一篇2025-10-25 21:43
下一篇 2025-10-25 21:48

相关推荐

  • Linux性能监控命令有哪些?

    Linux性能监控是系统管理和运维中的核心任务,通过命令行工具可以高效获取系统资源使用情况、进程状态及性能瓶颈,以下从CPU、内存、磁盘、网络及综合监控五个维度,详细介绍常用命令及其使用方法,CPU性能监控CPU是系统的核心,监控需关注使用率、负载、上下文切换及进程级占用情况,top – 实时进程级监控top以……

    2025-11-20
    0
  • Linux显示进程命令有哪些?

    在Linux系统中,管理和监控进程是系统管理员和开发者的日常任务之一,Linux提供了多种命令来显示进程信息,这些命令各有特点,适用于不同的场景,本文将详细介绍常用的Linux显示进程命令,包括ps、top、htop、pgrep、pstree等,并通过表格对比它们的功能和用法,帮助读者根据需求选择合适的工具,p……

    2025-11-19
    0
  • Linux显示进程命令有哪些?

    Linux系统中,显示进程是日常运维和开发中最常见的操作之一,通过查看进程可以了解系统的运行状态、资源占用情况以及进程间的关系,Linux提供了多种命令来显示进程信息,每个命令都有其独特的功能和适用场景,下面将详细介绍这些命令的使用方法及其输出信息的含义,最基础也是最常用的进程显示命令是ps,ps命令用于报告当……

    2025-11-19
    0
  • aix如何用命令查看CPU信息?

    在AIX操作系统中,监控和管理CPU资源是系统管理员日常运维的重要任务,通过特定的命令可以实时查看CPU的使用情况、核心数、运行状态等信息,帮助用户快速定位性能瓶颈或系统异常,以下是常用的AIX查看CPU相关命令的详细说明及使用方法,lsattr -E -l proc0是最基础的命令之一,用于显示系统处理器的属……

    2025-11-18
    0
  • Unix查看进程命令有哪些常用选项?

    在Unix-like操作系统中,查看进程是系统管理和故障排查的核心操作之一,通过命令行工具,管理员可以实时监控进程状态、资源占用、进程树结构等信息,从而优化系统性能、识别异常进程或终止失控任务,Unix系统提供了多种查看进程的命令,它们各有侧重,适用于不同场景,以下将详细介绍常用命令及其用法、参数和实际案例,基……

    2025-11-17
    0

发表回复

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