在 Linux 系统中,查看系统的综合状态、性能监控以及诊断问题是日常运维工作中的重要内容。sar
(System Activity Report)是一个强大的工具,用于收集、查看和存储系统的各类统计信息,它是 sysstat
软件包的一部分。除此之外,还有许多第三方命令和工具可以帮助你查看和监控系统状态。
一、sar
命令概述
sar
命令是用于报告和收集系统活动的工具。它能够显示 CPU、内存、磁盘、网络等方面的性能数据。通过 sar
,你可以定期获取系统的各种活动报告,甚至可以存储这些数据进行长期分析。
1. 安装 sysstat
包
如果系统没有安装 sar
工具,可以通过以下命令安装:
- 对于 Debian/Ubuntu 系统:
sudo apt update sudo apt install sysstat
- 对于 CentOS/RHEL 系统:
sudo yum install sysstat
2. 查看当前系统状态
sar
命令默认会显示历史数据,如果你没有启用历史数据记录,它会显示当前的数据。
- 查看 CPU 使用情况:
sar -u 1 3
这条命令表示每隔 1 秒收集一次 CPU 使用情况,收集 3 次。结果会显示 CPU 的用户态、系统态、空闲时间等信息。
- 查看内存使用情况:
sar -r 1 3
该命令每秒输出一次内存的使用情况,包括空闲内存、缓冲区、缓存等。
- 查看交换空间(Swap)使用情况:
sar -S 1 3
该命令显示交换空间的使用情况。
- 查看磁盘 I/O 情况:
sar -d 1 3
该命令显示每秒一次的磁盘设备 I/O 活动。
- 查看网络情况:
sar -n DEV 1 3
此命令显示网络接口的流量,包括接收和发送的字节数。
- 查看进程情况:
sar -q 1 3
显示进程的数量、阻塞的进程数等。
- 查看负载情况:
sar -q
显示系统的负载信息,包括当前的进程数、阻塞的进程数等。
3. 查看历史记录
sar
默认会收集和存储系统的历史数据(如果启用了数据记录)。你可以通过以下命令查看过去的记录。
- 查看历史的 CPU 使用情况:
sar -u -f /var/log/sa/saXX
其中 XX
是历史记录的日期。例如,sa10
表示 10 号的数据。
- 查看过去的内存使用情况:
sar -r -f /var/log/sa/saXX
- 查看网络流量:
sar -n DEV -f /var/log/sa/saXX
4. 启用历史数据记录
sar
默认每天都会记录系统的活动数据,记录的频率和内容可以通过编辑配置文件 /etc/sysstat/sysstat
来调整。
sudo vi /etc/sysstat/sysstat
确保 ENABLED="true"
配置项为启用状态。
5. 查看进程信息
sar
还可以报告正在运行的进程信息,例如:
sar -x 1 3
二、第三方命令和工具
除了 sar
,有很多第三方工具可以帮助你监控和查看系统状态。以下是一些常用的工具:
1. htop
htop
是一个交互式的进程查看器,比 top
更加友好和可操作。它显示了系统的 CPU、内存、进程、负载等信息,并且支持通过键盘与其交互。
-
安装
htop
:-
对于 Debian/Ubuntu:
sudo apt install htop
-
对于 CentOS/RHEL:
sudo yum install htop
-
-
运行
htop
:htop
htop
提供了彩色的界面,允许用户排序、搜索、杀死进程等操作。
2. nmon
nmon
是一个非常强大的性能监控工具,可以用来查看 CPU、内存、磁盘、网络等系统资源的实时状态。它还可以将监控数据输出到文件,以供后续分析。
-
安装
nmon
:-
对于 Debian/Ubuntu:
sudo apt install nmon
-
对于 CentOS/RHEL:
sudo yum install nmon
-
-
运行
nmon
:nmon
启动后,用户可以按不同的键来查看不同的资源信息,如 CPU(
c
),内存(m
),磁盘(d
)等。
3. Glances
Glances
是一个跨平台的系统监控工具,提供了 CPU、内存、磁盘、网络、进程等信息的全面视图。它支持 Web 界面、命令行界面等多种方式。
-
安装
Glances
:-
对于 Debian/Ubuntu:
sudo apt install glances
-
对于 CentOS/RHEL:
sudo yum install glances
-
-
运行
Glances
:glances
它会以动态更新的方式显示系统的各项状态。
4. iostat
iostat
是一个用于查看 CPU 和 I/O 性能的工具。它可以显示磁盘的活动情况、每个设备的 I/O 统计信息,以及 CPU 的使用情况。
-
安装
iostat
(属于sysstat
包):sudo apt install sysstat
-
使用
iostat
:iostat -x 1
该命令每隔 1 秒显示一次扩展的磁盘 I/O 状态。
5. dstat
dstat
是一个灵活的性能监控工具,提供了更丰富的输出格式,适用于不同的监控需求。它整合了多种工具的功能,如 vmstat
、iostat
、netstat
等。
-
安装
dstat
:sudo apt install dstat
-
使用
dstat
:dstat
dstat
提供了详细的实时系统性能信息,包括 CPU 使用情况、内存、磁盘、网络等。
6. netstat
netstat
是一个查看网络状态和连接的经典工具,能够显示当前的网络连接、路由表、接口状态等信息。
-
使用
netstat
查看当前连接:netstat -tuln
显示当前所有监听的网络端口和服务。
7. iftop
iftop
是一个实时的网络带宽监控工具,用于查看网络接口的流量。它能够实时显示每个连接的上下行流量,帮助管理员诊断网络瓶颈。
-
安装
iftop
:sudo apt install iftop
-
使用
iftop
:sudo iftop
总结
sar
是一个功能强大的系统性能监控工具,适用于收集和查看历史和实时的系统活动数据。- 第三方工具 如
htop
、nmon
、glances
、dstat
等,提供了丰富的实时监控功能和用户交互界面,适用于不同的监控需求。 - 使用这些工具,可以帮助系统管理员更好地监控和诊断系统性能,确保系统运行平稳高效。