
Linux实时监控进程资源使用情况,核心在于使用合适的工具,并理解它们的输出。最常用的工具包括
top、
htop、
vmstat、
iostat以及
pidstat。选择哪个取决于你想监控的具体资源类型以及需要的详细程度。
top和
htop提供了系统资源使用的概览,而
vmstat、
iostat和
pidstat则更专注于特定的资源,如内存、磁盘 I/O 和单个进程的资源消耗。
如何使用top/htop实时监控进程资源?
top和
htop都是交互式的进程查看器,它们会实时更新系统资源的使用情况。
top是 Linux 系统自带的,而
htop通常需要手动安装,但它提供了更友好的界面和更多的功能。
使用
top,只需在终端输入
top命令。你会看到一个列表,其中包含了当前运行的进程以及它们的 CPU、内存等资源使用情况。你可以使用不同的键来排序列表,例如按 CPU 使用率排序(按
P键)或按内存使用率排序(按
M键)。
htop的使用方式类似,输入
htop命令即可。
htop提供了彩色显示,更易于阅读,并且可以使用鼠标进行交互,例如杀死进程。
top和
htop的一个缺点是它们提供的只是一个快照。如果你需要更长时间的监控数据,或者需要记录历史数据,那么
vmstat、
iostat或
pidstat会更适合。

如何用vmstat监控Linux系统资源?
vmstat(Virtual Memory Statistics)是一个用于监控虚拟内存、进程、CPU 活动和 I/O 操作的命令行工具。它能提供关于系统性能瓶颈的有用信息。
基本用法是在终端输入
vmstat [delay] [count]。例如,
vmstat 5 10会每 5 秒输出一次统计信息,总共输出 10 次。
vmstat的输出包含多个列,其中比较重要的有:
r
:等待运行的进程数。如果这个值持续很高,可能表示 CPU 存在瓶颈。swpd
:使用的虚拟内存量。free
:空闲内存量。si
和so
:从磁盘交换到内存和从内存交换到磁盘的数据量。如果这两个值持续不为零,可能表示内存不足。us
:用户进程消耗的 CPU 时间百分比。sy
:系统进程消耗的 CPU 时间百分比。id
:空闲 CPU 时间百分比。wa
:等待 I/O 的 CPU 时间百分比。如果这个值很高,可能表示磁盘 I/O 存在瓶颈。
vmstat的优点是简单易用,可以快速了解系统的整体资源使用情况。缺点是它提供的只是一个宏观的视图,无法深入了解单个进程的资源消耗情况。

如何使用iostat监控磁盘I/O性能?
iostat(Input/Output Statistics)用于监控系统的磁盘 I/O 性能。它可以报告磁盘的读写速度、I/O 请求队列长度等信息。
使用方法是在终端输入
iostat [options] [device...] [interval] [count]。例如,
iostat -x 5 10会每 5 秒输出一次详细的磁盘 I/O 统计信息,总共输出 10 次。
-x选项表示输出扩展的统计信息。
iostat的输出也包含多个列,其中比较重要的有:
tps
:每秒传输数。kB_read/s
:每秒读取的 KB 数。kB_wrtn/s
:每秒写入的 KB 数。await
:平均 I/O 请求等待时间(毫秒)。svctm
:平均 I/O 服务时间(毫秒)。%util
:磁盘利用率。如果这个值接近 100%,可能表示磁盘 I/O 存在瓶颈。
iostat可以帮助你识别哪些磁盘正在承受高负载,以及 I/O 请求的延迟情况。这对于优化磁盘 I/O 性能非常有帮助。

如何使用pidstat监控单个进程的资源消耗?
pidstat是一个用于监控单个进程的资源消耗的命令行工具。它可以报告进程的 CPU 使用率、内存使用量、I/O 操作等信息。
使用方法是在终端输入
pidstat [options] [interval] [count] [pid...]。例如,
pidstat -u 5 10 1234会每 5 秒输出一次 PID 为 1234 的进程的 CPU 使用率,总共输出 10 次。
-u选项表示输出 CPU 使用率。
pidstat的输出包含多个列,其中比较重要的有:
%usr
:用户态 CPU 使用率。%system
:内核态 CPU 使用率。%guest
:运行在虚拟机上的 CPU 使用率。%CPU
:总 CPU 使用率。kB_rd/s
:每秒读取的 KB 数。kB_wr/s
:每秒写入的 KB 数。kB_ccwr/s
:每秒取消写入的 KB 数。PID
:进程ID。COMMAND
:命令名称。
pidstat可以帮助你识别哪些进程正在消耗大量的 CPU、内存或 I/O 资源。这对于诊断性能问题非常有帮助。例如,你可以使用
top或
htop找到 CPU 使用率最高的进程,然后使用
pidstat进一步分析该进程的资源消耗情况。
除了命令行工具,还有哪些图形化的监控工具?
除了命令行工具,还有一些图形化的监控工具可以用来实时监控 Linux 系统的资源使用情况。例如,
GNOME System Monitor、
KDE System Monitor以及
Netdata。
GNOME System Monitor和
KDE System Monitor是桌面环境自带的系统监控工具,它们提供了友好的图形界面,可以实时显示 CPU、内存、磁盘、网络等资源的使用情况。
Netdata是一个更强大的监控工具,它可以监控 Linux 系统的各种指标,包括 CPU、内存、磁盘、网络、进程、应用程序等。
Netdata提供了实时的图形界面,可以方便地查看历史数据,并且可以配置告警规则,当系统资源使用超过阈值时发送通知。安装
Netdata后,通过浏览器访问
http://localhost:19999即可查看监控数据。










