Linux sar 命令

一、作用

  sar 命令可以监控系统的各项性能指标,包括 CPU、内存、磁盘、网络等。sar 会自动收集相关指标日志,存储在 /var/log/sa/ 目录下,文件名格式为 saXX 和 sarXX,其中 XX 表示日期(例如 sa23 和 sar23 表示当月的 23 号数据),这两个文件的主要区别在于它们的格式和用途。

  • saxx文件:原始性能数据,二进制格式,需 sar 命令解析,不可直接阅读。
  • sarxx文件:汇总性能报告,文本格式,可直接阅读。

  sar 的日志保留时间默认为 28天,可通过修改 /etc/sysconfig/sysstat 文件中的 HISTORY 参数进行控制,修改后重启对应服务 systemctl restart sysstat.service 生效。若没有相关日志文件,说明未安装 sysstat 工具,或服务未启动。yum install sysstat 安装工具并 systemctl start sysstat.service 启动服务即可。


二、使用示例

2.1 CPU 使用率

  • 命令
    sar -u 1 5     #查看当前cpu性能,每1秒输出1次,共输出5次
    sar -u -f /var/log/sa/sa24 -s 09:00:00 -e 11:00:00    #查看24号9:00-11:00的cpu性能
    
  • 输出字段
    • %user:用户态 CPU 使用率。
    • %nice:低优先级进程的 CPU 使用率。
    • %system:内核态 CPU 使用率。
    • %iowait:等待 I/O 操作的 CPU 时间百分比。
    • %steal:虚拟化环境中被其他虚拟机占用的 CPU 时间。
    • %idle:空闲 CPU 时间百分比。
  • 阈值
    • %user + %system > 70%:CPU 使用率较高,可能需要优化程序或增加 CPU 资源。
    • %iowait > 5%:I/O 等待时间较高,可能是磁盘性能瓶颈。
    • %idle < 30%:系统负载较高,可能需要关注。

2.2 内存使用率

  • 命令
    sar -r 1 5
    sar -r -f /var/log/sa/sa24 -s 09:00:00 -e 11:00:00
    
  • 输出字段
    • kbmemfree:空闲内存大小(KB)。
    • kbmemused:已用内存大小(KB)。
    • %memused:内存使用率。
    • kbbuffers:缓冲区使用的内存大小(KB)。
    • kbcached:缓存使用的内存大小(KB)。
  • 阈值
    • %memused > 80%:内存使用率较高,可能需要增加内存或优化程序。
    • kbmemfree 持续减少:可能存在内存泄漏。

2.3 Swap 使用率

  • 命令
    sar -S 1 5
    sar -S -f /var/log/sa/sa24 -s 09:00:00 -e 11:00:00
    
  • 输出字段
    • kbswpfree:空闲 Swap 大小(KB)。
    • kbswpused:已用 Swap 大小(KB)。
    • %swpused:Swap 使用率。
  • 阈值
    • %swpused > 20%:Swap 使用率较高,说明物理内存不足,可能需要增加内存或优化程序。

2.4 磁盘 I/O

  • 命令
    sar -d 1 5
    sar -d -f /var/log/sa/sa24 -s 09:00:00 -e 11:00:00
    
  • 输出字段
    • tps:每秒的 I/O 请求数。
    • rd_sec/s:每秒读取的扇区数。
    • wr_sec/s:每秒写入的扇区数。
    • %util:磁盘利用率。
  • 阈值
    • %util > 80%:磁盘利用率较高,可能是磁盘性能瓶颈。
    • tps 持续较高:磁盘 I/O 压力较大,可能需要优化程序或升级磁盘。

2.5 网络接口

  • 命令
    sar -n DEV 1 5
    sar -n DEV -f /var/log/sa/sa24 -s 09:00:00 -e 11:00:00
    
  • 输出字段
    • rxpck/s:每秒接收的数据包数。
    • txpck/s:每秒发送的数据包数。
    • rxkB/s:每秒接收的数据量(KB)。
    • txkB/s:每秒发送的数据量(KB)。
  • 阈值
    • rxpck/stxpck/s 超过网卡带宽的 70%:网络流量较高,可能导致网络延迟。
    • rxkB/stxkB/s 接近网络接口带宽:可能需要优化网络配置或升级网络设备。

2.6 系统负载

  • 命令
    sar -q 1 5
    sar -q -f /var/log/sa/sa24 -s 09:00:00 -e 11:00:00
    
  • 输出字段
    • runq-sz:运行队列长度(等待 CPU 的进程数)。
    • plist-sz:任务列表中的进程数。
    • ldavg-1:过去 1 分钟的系统负载。
    • ldavg-5:过去 5 分钟的系统负载。
    • ldavg-15:过去 15 分钟的系统负载。
  • 阈值
    • ldavg-1 > CPU 核心数:系统负载较高,可能需要增加 CPU 资源或优化程序。
    • runq-sz 持续较高:CPU 资源不足,进程等待时间较长。

2.7 上下文切换

  • 命令
    sar -w 1 5
    sar -w -f /var/log/sa/sa24 -s 09:00:00 -e 11:00:00
    
  • 输出字段
    • cswch/s:每秒的上下文切换次数。
  • 阈值
    • cswch/s > 10000:上下文切换频繁,可能导致 CPU 资源浪费,需要优化程序。

2.8. 分页活动

  • 命令
    sar -B 1 5
    sar -B -f /var/log/sa/sa24 -s 09:00:00 -e 11:00:00
    
  • 输出字段
    • pgpgin/s:每秒从磁盘读入的页数。
    • pgpgout/s:每秒写入磁盘的页数。
    • fault/s:每秒的缺页中断次数。
  • 阈值
    • pgpgin/spgpgout/s 持续较高:内存不足,导致频繁的页面交换。
    • fault/s 持续较高:可能存在内存瓶颈。

三、与 top 命令对比

  sartop 都是 Linux 系统中常用的性能监控工具,但它们的设计目标和使用场景有所不同。以下是它们的优劣势对比:

特性sartop
实时监控较弱,主要用于历史数据分析强,适合实时监控
历史数据支持,可查看过去的数据不支持
监控范围全面(CPU、内存、磁盘、网络等)主要关注 CPU 和内存
进程级监控较弱强,显示每个进程的详细信息
交互性强,支持交互式操作
学习曲线较高,选项较多较低,易于上手
系统开销低,后台收集数据较高,频繁刷新可能影响性能
依赖服务依赖 sysstat 服务无需额外服务

### 回答1: sar(System Activity Reporter)命令是一个系统性能分析工具,它可以用来监控系统的各项指标,如CPU、内存、磁盘、网络等。sar命令通常需要与其他工具配合使用,如awk、sed、grep等,以便对sar输出的数据进行进一步处理。 sar命令的基本用法如下: ``` sar [options] [interval [count]] ``` 其中,options为sar命令的选项,interval为每次统计的时间间隔,count为统计的次数。如果不指定interval和count,则默认每隔1秒钟输出一次统计数据,直到用户手动中断为止。 以下是一些常用的sar命令选项: - -u:显示CPU使用情况 - -r:显示内存使用情况 - -b:显示磁盘I/O使用情况 - -n:显示网络使用情况 - -q:显示系统负载情况 例如,要查看系统CPU使用情况,可以使用以下命令: ``` sar -u 1 5 ``` 该命令将会每隔1秒钟输出一次CPU使用情况,共输出5次。输出结果包括CPU的各项指标,如用户时间、系统时间、空闲时间、等待I/O时间、硬件中断时间、软件中断时间等。 sar命令还可以将输出数据保存到文件中,以供后续分析。例如,要将CPU使用情况输出保存到文件中,可以使用以下命令: ``` sar -u 1 5 > cpu.log ``` 该命令将会将CPU使用情况输出到cpu.log文件中。保存的数据可以使用其他工具进行进一步处理和分析,如awk、sed、grep等。 ### 回答2: sar是一个在Linux系统中常用的性能收集和分析工具。它能够收集并报告系统的各种性能相关的数据,如CPU使用率、内存使用情况、磁盘和网络活动等。 sar命令的基本用法是通过在终端中输入"sar",然后加上相应的选项来获取不同类型的数据。常用的选项包括"-u"用于获取CPU使用率的数据,"-r"用于获取内存使用情况的数据,"-d"用于获取磁盘活动的数据,"-n"用于获取网络活动的数据等。 通过sar命令收集到的数据可以用来分析系统的性能瓶颈和优化调整。比如,可以通过查看CPU使用率的数据来确定是否存在CPU过载的问题,通过查看内存使用情况的数据来确定是否需要增加内存容量,通过查看磁盘活动的数据来确定磁盘性能是否足够等。 sar命令还支持将收集到的数据保存到文件中,以便日后进行分析。可以通过"-o"选项指定保存文件的路径,通过"-f"选项指定读取文件的路径,然后使用"-d"等选项来获取相应的数据并进行分析。 总之,sar命令是一个非常实用的性能监测工具,它能够帮助我们了解系统的运行状况,定位问题并进行优化。通过合理利用sar命令,我们可以更好地管理和维护Linux系统。 ### 回答3: sar命令是一个系统性能监测工具,用于收集和报告系统资源使用情况。它可以记录CPU利用率、内存使用、磁盘活动、网络流量和其他关键系统指标。sar命令通过对系统关键指标进行监测和记录,帮助管理员识别系统中的瓶颈和性能问题。 使用sar命令可以查看系统在给定时间段内的性能情况。可以指定特定时间间隔和持续时间以收集所需的数据。sar命令的输出可在终端以文本格式显示,也可以以二进制文件的形式进行存储,以供稍后分析和查看。 sar命令提供了各种选项,可以根据不同的需求来显示不同的系统性能数据。例如,可以使用"-u"选项来显示CPU的利用率和状态,"-r"选项用于显示内存的使用情况,"-b"选项用于显示磁盘活动等等。 此外,sar命令还可以生成报告和图表,以更直观地显示系统性能数据。通过加入"-o"选项,可以将数据保存到指定的文件中,然后使用sar命令的"-f"选项来分析这些数据。 总之,sar命令是一个功能强大的系统性能监测工具,可以帮助管理员实时监控和分析系统性能,及时解决性能问题,从而提高系统的稳定性和性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

脑子进水养啥鱼?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值