轻松学会Linux系统监控:实用工具命令全解析(二)

前言

当管理Linux系统时,了解常用监控工具命令是至关重要的。本文精选了一些实用的技巧,帮助你轻松监控系统资源、优化性能、及时发现问题。无论你是新手还是有经验的管理员,都能从中获益良多。不容错过的Linux系统管理利器,赶快阅读吧!

性能监控命令

iostat

用于监视系统的 CPU 利用率、设备利用率和磁盘 I/O 统计信息。通过 iostat 可以监控系统的磁盘性能以及 I/O 情况。

基本用法:

在终端中输入 iostat 命令即可显示系统的 CPU 和磁盘 I/O 情况。默认情况下,iostat 命令会显示平均数值,也可以通过指定选项来显示实时数据。

复制代码
iostat

iostat的输出信息主要包含这些内容:

系统信息:

  • 操作系统:Linux 3.10.0-1160.108.1.el7.x86_64
  • 主机名:localhost.localdomain
  • CPU 信息:4 个 CPU

CPU 使用情况:

  • %user:用户空间占用 CPU 百分比
  • %nice:nice 值为负的进程占用 CPU 百分比
  • %system:内核空间占用 CPU 百分比
  • %iowait:CPU 等待 I/O 操作完成的时间百分比
  • %steal:被虚拟化环境偷走的 CPU 时间百分比
  • %idle:CPU 空闲时间百分比

磁盘 I/O 信息:

  • Device:设备名称
  • tps:每秒钟传输的 I/O 请求次数
  • kB_read/s:每秒钟从设备读取的数据量(KB)
  • kB_wrtn/s:每秒钟向设备写入的数据量(KB)
  • kB_read:设备总共读取的数据量(KB)
  • kB_wrtn:设备总共写入的数据量(KB)

iostat命令还可以配合一些可选参数选项来使用:

  • -c:显示 CPU 使用情况。
  • -d:显示磁盘 I/O 使用情况。
  • -h:以人类可读的方式显示数据,使用 K、M 等单位表示。
  • -k、-m:指定磁盘 I/O 数据的单位,分别表示 KB/s 和 MB/s。
  • -t [间隔秒数]:持续显示 CPU 和磁盘 I/O 情况,每隔指定秒数更新一次。
  • -x:显示详细的 CPU 使用情况。

示例:

显示系统的 CPU 和磁盘 I/O 情况(默认平均值)。

复制代码
iostat

显示 CPU 使用情况。

r 复制代码
iostat -c

显示磁盘 I/O 使用情况。

复制代码
iostat -d

以人类可读的方式显示数据。

复制代码
iostat -h

持续显示 CPU 和磁盘 I/O 情况,每 5 秒更新一次。

复制代码
iostat -t 5

显示详细的 CPU 使用情况。

复制代码
iostat -x

如果在使用的操作系统中未找到 iostat 命令,可能是因为该命令所属的软件包尚未安装或者不包含在系统的默认路径中。iostat 命令通常是 sysstat 软件包的一部分,因此可以尝试安装 sysstat 软件包以获取 iostat 命令。

在大多数 Linux 系统中,可以使用以下命令安装 sysstat 软件包:

对于基于 Debian 的系统(如 Ubuntu):

sql 复制代码
sudo apt update sudo 
apt install sysstat

对于基于 Red Hat 的系统(如 CentOS 或 Fedora):

复制代码
sudo yum install sysstat

安装完成后,就可以使用 iostat 命令来查看系统的 CPU 使用情况和磁盘 I/O 统计信息了。

sar

sar 命令用于收集、报告以及保存系统活动信息,例如 CPU利用率、内存利用率、磁盘活动、网络活动等。通过 sar 命令可以查看系统的历史活动情况,帮助管理员分析系统性能瓶颈并进行优化。

如果在系统中未找到 sar 命令,可能是因为 sysstat 工具包尚未安装,说细的安装方法,在介绍iostat命令的时候有提及,可以向上翻一下,这里不再过多赘述。

sar命令还可以配合一些可选参数选项来使用

  • -u:显示 CPU 使用情况统计信息。
  • -r:显示内存使用情况统计信息。
  • -q:显示系统负载情况。
  • -b:显示磁盘 I/O 统计信息。
  • -n DEV:显示网络接口活动情况。
  • -f filename:从指定文件中读取 数据并进行报告。

示例

查询 CPU 使用率统计信息

复制代码
sar -u

对上面输出内容的解读:

  • %user:用户空间占用 CPU 时间的百分比。
  • %nice:以较高优先级运行的进程占用 CPU 时间的百分比。
  • %system:系统空间占用 CPU 时间的百分比。
  • %iowait:CPU 等待输入/输出完成所花费的时间的百分比。
  • %steal:当虚拟机监控程序(VM hypervisor)为另一个虚拟机服务时,被偷取的 CPU 时间百分比。
  • %idle:CPU 空闲时间的百分比。

根据输出内容,可以得出以下结论:

  • 在每个时间点(例如16时00分01秒、16时10分01秒等)系统整体的 CPU 使用情况基本一致,其中用户空间占用 CPU 时间的百分比很低(0.01%),系统空间和等待输入/输出完成的时间也很少,而大部分时间系统处于空闲状态(99.99%)。
  • 输出的最后一行为平均时间情况,平均用户空间、系统空间和等待输入/输出完成时间占用率都很低(0.01%),而 CPU 的空闲时间占比很高(99.99%)。

查询每个 CPU 核心的使用率

css 复制代码
sar -P ALL

查询内存使用情况统计信息

复制代码
sar -r

对上面输出内容的解读:

  • kbmemfree:空闲内存的大小(以 KB 为单位)。
  • kbmemused:已使用内存的大小(以 KB 为单位)。
  • %memused:内存使用率,即已使用内存与总内存的比例。
  • kbbuffers:用于缓存的内存大小(以 KB 为单位)。
  • kbcached:用于缓存文件系统的内存大小(以 KB 为单位)。
  • kbcommit:提交的内存大小(以 KB 为单位)。
  • %commit:提交的内存使用率,即提交的内存与总内存的比例。
  • kbactive:活跃内存的大小(以 KB 为单位)。
  • kbinact:不活跃内存的大小(以 KB 为单位)。
  • kbdirty:脏内存的大小(以 KB 为单位)。

根据输出内容,可以得出以下结论:

  • 在每个时间点(例如16时00分01秒、16时10分01秒等)系统的内存情况基本一致,包括空闲内存、已使用内存、缓存内存等各项指标。
  • 平均时间情况下,系统的内存使用情况综合考虑各个指标,可以作为系统内存整体状态的参考。
  • 这些信息反映了系统在该时间段内的内存使用情况,可以帮助监控系统的内存负载情况并进行性能分析。如果需要进一步解读或有其他问题,请随时告诉我。

查询系统平均负载和进程队列长度

css 复制代码
sar -q

查询磁盘 I/O 统计信息

css 复制代码
sar -b

查询网络接口活动情况

复制代码
sar -n DEV

查询进程活动信息。

复制代码
sar -S

指定输出间隔时间和次数:每 2 秒输出一次 CPU 使用信息,共输出 5 次。

复制代码
sar -u 2 5

从指定文件中读取 sar 数据并进行报告(XX 是日期)。

bash 复制代码
sar -f /var/log/sa/saXX

nethogs

nethogs命令是一个用于实时监控网络流量的工具,可以显示当前系统中各个进程(PID)消耗的网络带宽情况。

css 复制代码
nethogs [options]

常见的nethogs选项包括:

  • -d seconds:指定更新显示的时间间隔(单位为秒)。
  • -t:以累积模式显示流量统计信息。
  • -p:显示每个进程的完整路径。
  • -v level:设置显示详细程度级别。

示例用法:

nethogs:以默认设置启动nethogs,显示所有进程的网络带宽使用情况。

每隔1秒更新一次显示。

复制代码
nethogs -d 1

以累积模式显示流量统计信息。

复制代码
nethogs -t

显示每个进程的完整路径。

css 复制代码
nethogs -p

nethogs输出的列含义如下:

  • PID:进程ID。
  • User:拥有该进程的用户。
  • Program:进程的名称。
  • Sent:发送的数据量。
  • Received:接收的数据量。

如果在使用的操作系统中未找到 nethogs 命令,可能是因为该命令所属的软件包尚未安装或者不包含在系统的默认路径中。

对于Ubuntu/Debian系统,可以使用以下命令安装nethogs:

sql 复制代码
sudo apt update sudo 
apt install nethogs

对于CentOS/RHEL系统,可以使用以下命令安装nethogs:

arduino 复制代码
sudo yum install epel-release 
sudo yum install nethogs

安装完成后,应该能够在命令行中成功运行nethogs来监控网络流量。

dstat

综合性能监控工具,可以显示 CPU、内存、磁盘、网络等方面的性能数据。dstat 提供了多种统计视图和选项,可用于实时监控系统性能。

dstat命令是一个用于实时系统资源监控的工具,可以显示各种系统资源的使用情况,包括CPU使用率、内存占用、磁盘I/O、网络流量等。

css 复制代码
dstat [options] [delay [count]]

输出内容解读:

  • 第一行为列标题,分别表示不同的系统资源监控项,如CPU使用情况、磁盘I/O、网络流量等。
  • 第二行为具体的监控数据,包括总体CPU使用情况(usr-用户空间占用、sys-内核空间占用、idl-空闲、wai-等待IO、hiq-硬中断占用、siq-软中断占用)、磁盘I/O情况(read-读取数据量、writ-写入数据量)、网络流量情况(recv-接收数据量、send-发送数据量)、页面交换情况(in-页面进入、out-页面离开)、系统调用情况(int-中断数、csw-上下文切换数)。
  • 随后的每一行都代表一个时间点的系统资源监控数据,包括相同的监控项和对应的数值。例如,"0 0 100 0 0 0"表示该时间点下,CPU的使用情况为0%的用户空间占用、0%的内核空间占用、100%的空闲等。

常见的dstat选项包括:

  • -c:显示CPU使用情况。
  • -m:显示内存使用情况。
  • -d:显示磁盘I/O情况。
  • -n:显示网络流量情况。
  • -t:显示时间信息。
  • -p:显示进程相关信息。
  • -y:显示文件系统I/O情况。
  • -l:显示负载情况。

示例用法:

以默认设置启动dstat,显示各项系统资源使用情况。

复制代码
dstat

查询CPU使用情况、磁盘I/O情况和网络流量情况。

r 复制代码
dstat -c -d -n

查询时间信息、进程相关信息和文件系统I/O情况。

css 复制代码
dstat -t -p -y

如果你在系统中未找到dstat命令,可能是因为dstat工具并未预装在当前的操作系统中。可以尝试通过包管理工具来安装dstat。以下是一些常见系统下安装dstat的方法:

对于Ubuntu/Debian系统,可以使用以下命令安装dstat:

sql 复制代码
sudo apt update sudo 
apt install dstat

对于CentOS/RHEL系统,可以使用以下命令安装dstat:

arduino 复制代码
sudo yum install epel-release 
sudo yum install dstat

安装完成后,应该能够在命令行中成功运行dstat来监控系统资源使用情况。如果遇到任何问题或需要进一步帮助,请随时告诉我。

写在最后

对Linux系统管理比较感兴趣的朋友们,如果觉得这篇文章对您有帮助,请不妨点个赞和收藏起来吧!这些珍贵的技巧和知识将成为你日常工作中的得力助手,让你轻松应对各种系统管理挑战。

相关推荐
五阿哥永琪6 分钟前
Spring Boot 中自定义线程池的正确使用姿势:定义、注入与最佳实践
spring boot·后端·python
HZero.chen27 分钟前
Linux字符串处理
linux·string
张童瑶29 分钟前
Linux SSH隧道代理转发及多层转发
linux·运维·ssh
汪汪队立大功12333 分钟前
什么是SELinux
linux
Victor35639 分钟前
Netty(16)Netty的零拷贝机制是什么?它如何提高性能?
后端
石小千39 分钟前
Linux安装OpenProject
linux·运维
Victor3561 小时前
Netty(15)Netty的线程模型是什么?它有哪些线程池类型?
后端
柏木乃一1 小时前
进程(2)进程概念与基本操作
linux·服务器·开发语言·性能优化·shell·进程
Lime-30901 小时前
制作Ubuntu 24.04-GPU服务器测试系统盘
linux·运维·ubuntu