Linux性能监控命令有哪些?

Linux性能监控是系统管理和运维中的核心任务,通过命令行工具可以高效获取系统资源使用情况、进程状态及性能瓶颈,以下从CPU、内存、磁盘、网络及综合监控五个维度,详细介绍常用命令及其使用方法。

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

CPU性能监控

CPU是系统的核心,监控需关注使用率、负载、上下文切换及进程级占用情况。

top – 实时进程级监控

top以动态列表形式展示进程资源占用,默认按CPU使用率排序,常用参数:

  • -d:刷新间隔(如top -d 2每2秒刷新)。
  • -p:监控指定进程(如top -p 1234)。
  • -c:显示完整命令行而非仅进程名。
  • -b:批量输出模式,适合脚本处理(如top -b -n 5 > top.log)。

关键字段

  • %us(用户态CPU)、%sy(内核态CPU)、%id(空闲)、%wa(等待I/O)。
  • load average:1分钟/5分钟/15分钟系统负载,理想值应不超过CPU核心数。

vmstat – 虚拟内存统计(含CPU)

vmstat报告进程、内存、I/O、CPU等摘要信息,常用参数:

linux性能监控命令
(图片来源网络,侵删)
  • 1:每秒刷新一次(如vmstat 1)。
  • -s:以统计表形式展示详细计数器。

关键字段

  • r:运行队列进程数(长期大于CPU核心数则负载过高)。
  • ussyidwa:同top的CPU指标。
  • cs:上下文切换次数,频繁切换可能意味着进程过多或CPU竞争。

mpstat – 多核CPU监控

mpstatsysstat工具包的一部分,可按核心拆分CPU使用率。

  • -P ALL:显示所有核心的CPU使用情况(如mpstat -P ALL 1)。
  • usrsysidle:各核心的用户态、内核态、空闲占比。

内存性能监控

内存监控需关注使用率、空闲/缓冲/缓存分布,以及进程内存占用。

free – 内存使用概览

free以易读格式显示内存总量、已用、空闲、缓冲/缓存等信息。

linux性能监控命令
(图片来源网络,侵删)
  • -h:以人类可读格式显示(如free -h)。
  • -m:以MB为单位。

关键字段

  • total:总内存。
  • used:已用内存(包含内核缓冲/缓存)。
  • free:完全空闲内存。
  • buff/cache:缓冲(块设备缓存)和缓存(文件页缓存),可通过释放缓存临时释放内存(如echo 1 > /proc/sys/vm/drop_caches)。

smem – 精确内存占用统计

smem可区分物理内存(RSS)和虚拟内存(Swap),支持按进程/用户/命令分组。

  • -p:按进程排序(如smem -p)。
  • -k:以KB为单位显示。
  • USS(Unique Set Size):进程独占物理内存,比RSS更准确反映内存占用。

磁盘I/O监控

磁盘I/O瓶颈会导致系统响应缓慢,需关注吞吐量、I/O延迟及队列长度。

iostat – I/O设备统计

iostatsysstat工具包组件,可监控磁盘及CPU使用情况。

  • -d:仅显示磁盘I/O统计(如iostat -d 1)。
  • -x:扩展统计,包含关键指标:
    • %util:磁盘利用率(超过70%可能存在瓶颈)。
    • await:平均I/O等待时间(毫秒),过高意味着磁盘响应慢)。
    • r_await/w_await:读/写平均等待时间。

iotop – 实时I/O进程监控

iotop以类似top的界面实时显示各进程的I/O读写速度,需root权限。

  • -o:仅显示正在产生I/O的进程。
  • -p:监控指定进程。

dstat – 综合系统资源监控

dstat可同时监控CPU、内存、磁盘、网络等,支持自定义输出格式。

  • dstat -tdn:显示磁盘I/O、网络吞吐及时间(t时间、d磁盘、n网络)。

网络性能监控

网络监控需关注带宽使用、连接数、错误包及协议分布。

iftop – 实时带宽监控

iftop按主机/端口显示实时网络带宽使用情况,需root权限。

  • -i:指定网卡(如iftop -i eth0)。
  • -n:以数字形式显示主机名,避免DNS解析延迟。

nethogs – 进程级网络监控

nethogs按进程统计实时网络流量,可定位占用带宽的进程。

  • -d:刷新间隔(如nethogs -d 2)。
  • -c:刷新次数(如nethogs -c 5)。

ss/netstat – 网络连接状态

  • ss -tuln:显示TCP/UDP监听端口(-tTCP、-uUDP、-l仅监听、-n数字格式)。
  • ss -s:摘要统计(如TCP连接数、TIME_WAIT状态数)。

综合监控工具

glances – 全能系统监控

glances基于Python开发,整合CPU、内存、磁盘、网络、进程等信息,支持Web界面和告警。

  • -b:显示磁盘I/O条形图。
  • -m:显示内存使用情况。
  • -1:单行模式,适合远程查看。

sar – 系统活动历史报告

sarsysstat工具包的核心组件,可记录历史性能数据,用于长期分析。

  • -u:CPU使用率(如sar -u 5 10每5秒采样10次)。
  • -r:内存使用率(如sar -r)。
  • -b:I/O传输率(如sar -b)。

性能监控指标总结表

监控维度核心命令关键指标
CPUtop/vmstat%us%sy%id%waload averagecs(上下文切换)
内存free/smemusedfreebuff/cacheUSS(进程独占内存)
磁盘I/Oiostat/iotop%utilawaitr_await/w_await、读写速度
网络iftop/nethogs带宽使用、进程级流量、连接数(ss -s
综合glances/sar整合CPU、内存、磁盘、网络指标,支持历史数据分析

相关问答FAQs

Q1:如何判断CPU是否过载?
A1:CPU过载可通过以下指标综合判断:

  1. 系统负载load average(1分钟/5分钟/15分钟)持续超过CPU核心数(如4核CPU负载>4)。
  2. CPU使用率topvmstat%us+%sy长期超过80%,且%id(空闲)低于20%。
  3. 上下文切换vmstatcs(上下文切换次数)频繁,如每秒超过10万次(需结合CPU核心数判断)。
  4. 运行队列vmstatr(运行队列进程数)长期大于CPU核心数,表示进程等待CPU时间过长。

Q2:如何定位内存泄漏的进程?
A2:定位内存泄漏进程的步骤如下:

  1. 对比内存占用:使用ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem查看进程内存占用,结合free -h观察总内存变化。
  2. 跟踪进程内存增长:通过watch -n 5 'ps -p <PID> -o rss,vsz'监控目标进程的RSS(物理内存)和VSZ(虚拟内存)是否持续增长。
  3. 使用smem分析:运行smem -p查看进程的USS(独占内存),若USS持续增长则可能存在泄漏。
  4. 检查内存分配:对于特定进程(如Java应用),可通过jmap -histo <PID>(Java)或valgrind工具分析内存分配情况。

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

(0)
运维的头像运维
上一篇2025-11-20 21:39
下一篇 2025-11-20 21:43

相关推荐

  • 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
  • POP3协议命令有哪些?

    pop3协议命令是邮局协议第三版(Post Office Protocol Version 3)的核心组成部分,该协议主要用于从邮件服务器接收邮件并下载到本地客户端,作为电子邮件系统中广泛应用的客户端/服务器协议之一,POP3通过一系列简单而高效的命令实现了邮件的检索、下载、删除和管理等功能,以下将详细介绍PO……

    2025-11-16
    0

发表回复

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