news 2026/9/30 15:06:33

【Linux 基础知识系列:第二百一十三篇】Linux 系统资源监控:sar 命令

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Linux 基础知识系列:第二百一十三篇】Linux 系统资源监控:sar 命令

简介

在 Linux 系统管理中,监控系统资源的使用情况是确保系统性能和稳定性的重要任务。系统管理员需要实时了解 CPU、内存、磁盘和网络等资源的使用情况,以便及时发现潜在问题并进行优化。sar(System Activity Reporter)是一个强大的系统性能监控工具,能够采集、查看和报告系统的历史性能数据。通过使用sar,管理员可以轻松地分析系统在不同时间段内的资源使用情况,从而更好地进行系统管理和优化。本文将详细介绍sar的使用方法,包括如何采集和查看系统 CPU、内存、磁盘和网络的历史性能数据。

核心概念

系统资源监控

系统资源监控是指对计算机系统中的各种资源(如 CPU、内存、磁盘和网络)的使用情况进行实时或定期的检测和记录。通过监控这些资源,系统管理员可以了解系统的运行状态,发现潜在的性能瓶颈,并采取相应的优化措施。

sar 工具

sar是一个系统活动报告工具,属于sysstat包的一部分。它能够采集和报告系统资源的使用情况,包括 CPU 使用率、内存使用量、磁盘 I/O、网络流量等。sar的数据采集功能通过sa1和sa2脚本实现,这些脚本通常会在系统启动时自动运行,并定期记录系统活动数据。

数据采集与报告

  • 数据采集:sar使用sa1脚本定期采集系统性能数据,并将数据存储在日志文件中。这些日志文件通常位于/var/log/sa目录下。

  • 数据报告:sar使用sar命令从日志文件中读取数据,并生成易于理解的报告。这些报告可以显示系统在指定时间段内的性能指标。

命令与示例

安装 sysstat 包

在大多数 Linux 发行版中,sar是sysstat包的一部分。可以通过包管理器安装sysstat。

在 Debian/Ubuntu 系统中:

sudo apt update sudo apt install sysstat

在 CentOS/RHEL 系统中:

sudo yum install sysstat

安装完成后,需要确保sysstat服务已启动并设置为开机自启。

sudo systemctl enable sysstat sudo systemctl start sysstat

启用数据采集

默认情况下,sysstat会通过sa1和sa2脚本定期采集数据。这些脚本通常会在系统启动时自动运行。可以通过编辑/etc/cron.d/sysstat文件来配置数据采集的频率

# 每 10 分钟采集一次数据 */10 * * * * root /usr/lib/sysstat/sa1 1 1

查看 CPU 使用率

使用sar命令查看 CPU 使用率。

sar -u

示例输出:

12:00:01 AM CPU %user %nice %system %iowait %steal %idle 12:10:01 AM all 0.01 0.00 0.02 0.00 0.00 99.97 12:20:01 AM all 0.02 0.00 0.03 0.00 0.00 99.95

查看内存使用情况

使用sar命令查看内存使用情况。

sar -r

示例输出:

12:00:01 AM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit 12:10:01 AM 123456 789012 86.34 12345 67890 1234567 12.34 12:20:01 AM 123456 789012 86.34 12345 67890 1234567 12.34

查看磁盘 I/O

使用sar命令查看磁盘 I/O 情况。

sar -d

示例输出:

12:00:01 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 12:10:01 AM dev8-0 1.23 45.67 89.01 10.11 0.12 1.23 1.23 0.12 12:20:01 AM dev8-0 1.23 45.67 89.01 10.11 0.12 1.23 1.23 0.12

查看网络流量

使用sar命令查看网络流量。

sar -n DEV

示例输出:

12:00:01 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 12:10:01 AM eth0 123.45 678.90 12.34 56.78 0.00 0.00 0.00 12:20:01 AM eth0 123.45 678.90 12.34 56.78 0.00 0.00 0.00

查看特定时间段的数据

使用sar命令查看特定时间段的数据。

sar -u -s 12:00:00 -e 13:00:00

示例输出:

12:00:01 AM CPU %user %nice %system %iowait %steal %idle 12:10:01 AM all 0.01 0.00 0.02 0.00 0.00 99.97 12:20:01 AM all 0.02 0.00 0.03 0.00 0.00 99.95

查看特定日期的数据

使用sar命令查看特定日期的数据。

sar -u -f /var/log/sa/sa10

示例输出:

12:00:01 AM CPU %user %nice %system %iowait %steal %idle 12:10:01 AM all 0.01 0.00 0.02 0.00 0.00 99.97 12:20:01 AM all 0.02 0.00 0.03 0.00 0.00 99.95

常见问题

如何确保数据采集正常运行?

可以通过检查/var/log/sa目录下的日志文件来确认数据采集是否正常运行。如果日志文件为空或缺失,可能是sa1和sa2脚本未正确配置或未运行。

ls -l /var/log/sa

如何查看实时系统性能数据?

虽然sar主要用于查看历史数据,但可以通过sar命令的实时模式查看当前系统性能数据。

bash

复制

sar -u 1 5

此命令将每秒输出一次 CPU 使用率,共输出 5 次。

如何分析磁盘 I/O 性能问题?

磁盘 I/O 性能问题通常可以通过查看await和%util指标来分析。await表示平均等待时间,%util表示磁盘利用率。如果%util接近 100%,则可能表示磁盘 I/O 是性能瓶颈。

如何分析网络性能问题?

网络性能问题可以通过查看rxkB/s和txkB/s指标来分析。这些指标表示接收和发送的数据量。如果这些值过高,可能表示网络流量过大,需要进一步调查。

实践建议

定期检查系统性能

建议定期使用sar查看系统性能数据,特别是在系统负载较高的时间段。这可以帮助及时发现潜在的性能问题。

设置合理的数据采集频率

根据系统需求设置合理的数据采集频率。如果系统负载较高,可以适当增加采集频率,以便更详细地记录系统性能变化。

分析关键指标

重点关注 CPU 使用率、内存使用量、磁盘 I/O 和网络流量等关键指标。这些指标通常能够反映系统的整体性能状态。

使用图表工具可视化数据

可以使用工具如ksar或sar2graph将sar的数据生成图表,以便更直观地分析系统性能趋势。

# 安装 ksar sudo apt install ksar

配置报警阈值

结合监控工具(如 Nagios 或 Zabbix)为关键指标设置报警阈值。当指标超过阈值时,自动触发报警,以便及时采取措施。

总结

本文详细介绍了sar(System Activity Reporter)工具的使用方法,包括如何采集和查看系统 CPU、内存、磁盘和网络的历史性能数据。通过合理使用sar,系统管理员可以轻松地监控和分析系统资源的使用情况,及时发现性能瓶颈并进行优化。在实际应用中,定期检查系统性能、设置合理的数据采集频率以及重点关注关键指标是确保系统性能和稳定性的关键实践。掌握这些技能后,你将能够更有效地管理和维护 Linux 系统,提升系统的整体性能和可靠性。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/30 14:39:10

别再让 AI 自由发挥了!用 LangChain + Zod 强制它输出合法 JSON

用 LangChain Zod 构建类型安全的 AI 结构化输出 —— 从“一句话解释 Promise”开始大模型很聪明,但也很“自由”。 你让它解释 Promise,它可能回你一段优美的散文; 你想要一个干净的 JSON,它却在前后加上“好的!”“…

作者头像 李华
网站建设 2026/9/29 16:28:52

24、云存储队列与表服务操作全解析

云存储队列与表服务操作全解析 在云存储的应用场景中,队列和表服务是非常重要的组成部分。下面将详细介绍队列消息的操作以及 Windows Azure 表服务的相关内容。 队列消息操作 消息入队 向队列中添加消息时,通过发送如下的 HTTP POST 请求: POST /testq1/messages?ti…

作者头像 李华
网站建设 2026/9/27 10:33:40

31、逐跳行为(PHB)及其实现示例

逐跳行为(PHB)及其实现示例 在网络通信中,为了实现不同类型流量的差异化服务,逐跳行为(Per-Hop Behavior,PHB)的概念应运而生。PHB 描述了差分服务(Diffserv)节点对特定差分服务行为聚合体的外部可观察转发行为。下面将详细介绍 PHB 的相关内容。 1. PHB 基础概念与…

作者头像 李华
网站建设 2026/9/27 7:22:32

互联网大厂求职:Java面试中的技术点和业务场景解析

互联网大厂求职:Java面试中的技术点和业务场景解析 场景描述: 在某互联网大厂的面试室内,面试官正襟危坐,而一旁坐着的程序员谢飞机则显得有些紧张。这是谢飞机的第N次面试,前几次的“辉煌战绩”让他今天不敢掉以轻心。…

作者头像 李华
网站建设 2026/9/26 19:29:15

智谱Open-AutoGLM究竟有多强?:3大核心技术解密国产AutoML新范式

第一章:智谱 Open-AutoGLM沉思在大模型与自动化机器学习交汇的前沿,智谱推出的 Open-AutoGLM 引发了广泛的技术关注。它并非传统意义上的 AutoML 工具,而是尝试将自然语言理解能力与自动化建模流程深度融合,实现以“对话”驱动机器…

作者头像 李华
网站建设 2026/9/26 19:57:17

(AutoGLM 2.0 vs 传统建模):性能对比实测,结果令人震惊

第一章:AutoGLM 2.0 vs 传统建模:性能对比实测,结果令人震惊在真实业务场景中对 AutoGLM 2.0 与传统机器学习建模流程进行端到端对比测试,结果显示其效率与精度均实现跨越式提升。本次测试基于金融风控数据集,涵盖特征…

作者头像 李华