前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >和它比起来,其他 Linux 命令都是猹!

和它比起来,其他 Linux 命令都是猹!

作者头像
民工哥
发布2024-02-01 14:51:57
1120
发布2024-02-01 14:51:57
举报

大家好,我是民工哥!

玩 Linux 系统的,都应该知道想要玩转它,就得必须玩转 Linux 的小黑框,简单来说就是必须搞懂 Linux 的常用命令!

所以,完全搞懂一个命令及其参数的用法,你会发现它是非常强大且牛逼的,Linux 系统就有这么一个命令:sar,功能非常强大且牛逼,但是,很多人都没能完全搞懂它。

今天,民工哥就和大家一起来聊一聊这个强大且牛掰的命令:sar

简介

sar(System Activity Reporter 系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一。

它可以从多方面对系统的资源使用情况进行监控,包括:文件的读写情况、系统调用的使用情况、磁盘 I/O、CPU 效率、内存使用状况、进程活动及 IPC 有关的活动等,然后将系统中的各种性能数据收集起来并显示给用户。

安装

sar 命令来自于 sysstat 这个工具包,如果系统提示 sar 命令不存在,需先安装 sysstat。

代码语言:javascript
复制
[root@CentOS7-1 ~]# sar
-bash: sar: command not found
[root@CentOS7-1 ~]# yum install sysstat -y
代码语言:javascript
复制
[root@CentOS7-1 ~]# sar

语法格式

代码语言:javascript
复制
sar -[ options ] time_interval number_of_tines_to_display

常用参数说明

代码语言:javascript
复制
-A  #汇总所有的报告
-a  #查看文件读写使用情况
-B  #查看附加的缓存的使用情况
-b  #查看缓存的使用情况
-c  #查看系统调用的使用情况
-d  #查看磁盘的使用情况
-g  #查看串口的使用情况
-h  #查看关于buffer使用的统计数据
-m  #查看IPC消息队列和信号量的使用情况
-n  #查看命名cache的使用情况
-p  #查看调页活动的使用情况
-q  #查看平均负载
-R  #查看进程的活动情况
-r  #查看没有使用的内存页面和硬盘块
-u  #查看CPU的利用率
-v  #查看进程、i节点、文件和锁表状态
-w  #查看系统交换活动状况
-y  #查看TTY设备活动状况

常用功能介绍

sar 命令的一些常用选项和功能如下:

  • CPU使用统计:使用“-u”选项可以输出整体CPU的使用情况,包括用户模式下的时间百分比、系统模式下的时间百分比等。
  • 内存使用情况:使用“-r”选项可以查看没有使用的内存页面和硬盘块的情况。
  • 磁盘使用情况:使用“-d”选项可以查看每个块设备的活动情况,包括读取和写入的块数等。
  • 网络活动情况:使用“-n”选项可以查看网络连接、传输速率等网络活动情况。
  • 进程活动情况:使用“-P”选项可以查看进程的创建、终止等进程活动情况。
  • 上下文切换情况:使用“-w”选项可以查看系统上下文切换情况,了解系统中的进程调度情况。
  • 系统负载情况:使用“-q”选项可以查看系统负载情况,包括队列长度和负载信息等。
  • 缓冲区使用情况:使用“-b”选项可以查看缓冲区的使用情况,了解系统的I/O性能。
  • 文件读写情况:使用“-a”选项可以查看文件读写情况,了解磁盘的读写负载。
sar命令和top命令区别

两者都是可以用于监控系统性能的工具,但它们之间存在一些区别。

  • sar命令是一个系统监视和记录工具,它可以收集、报告和保存系统活动信息,包括CPU使用情况、内存使用情况、磁盘活动、网络活动等。sar命令可以将收集到的数据以表格或图形方式显示,并支持对历史数据的查询和分析。因此,sar命令更适合用于系统性能的长期监控和数据记录。
  • top命令则是一个动态的监视工具,它可以实时显示系统中各个进程的资源占用情况,包括CPU使用率、内存占用、进程优先级等。top命令还可以根据用户的需要动态地调整显示的进程信息,并提供了一个交互式的界面供用户进行操作。因此,top命令更适合用于短期的实时性能监控和进程管理。

应用举例

统计网络信息
代码语言:javascript
复制
[root@CentOS7-1 ~]# sar -n DEV 1 3
查看内存交换空间的使用率信息
代码语言:javascript
复制
[root@CentOS7-1 ~]# sar -r
Linux 3.10.0-1127.18.2.el7.x86_64 (CentOS7-1)  01/18/2024  _x86_64_ (1 CPU)

04:28:37 AM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
04:28:55 AM    127328    868356     87.21         0    542496    679228     21.96    350504    364784        24
04:29:00 AM    127328    868356     87.21         0    542516    679228     21.96    350504    364784        44
04:30:01 AM    126700    868984     87.28         0    542644    680828     22.01    350956    364680         0
Average:       127119    868565     87.23         0    542552    679761     21.98    350655    364749        23

输出的结果字段说明

代码语言:javascript
复制
kbmemfree  #空闲物理内存量
kbmemused  #使用中的物理内存量
%memused   #物理内存量使用率
kbbuffers  #内核中作为缓冲区使用的物理内存容量
kbcacheed  #内核中作为缓存使用的物理内存容量
kbswpfree  #交换区的空闲容量
kbswpused  #使用中的交换区容量
查看CPU使用率
代码语言:javascript
复制
[root@centos7 ~]# sar -u
Linux 3.10.0-1127.18.2.el7.x86_64 (centos7)  03/28/2021  _x86_64_ (1 CPU)

11:10:02 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
11:20:01 AM     all      0.03      0.00      0.18      0.02      0.00     99.77
11:30:01 AM     all      0.03      0.00      0.17      0.02      0.00     99.78
Average:        all      0.03      0.00      0.18      0.02      0.00     99.77
查看平均负载
代码语言:javascript
复制
[root@centos7 ~]# sar -q
Linux 3.10.0-1127.18.2.el7.x86_64 (centos7)  03/28/2021  _x86_64_ (1 CPU)

11:10:02 AM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
11:20:01 AM         1       108      0.00      0.01      0.05         0
11:30:01 AM         1       108      0.00      0.01      0.05         0
Average:            1       108      0.00      0.01      0.05         0
查看页面交换发生状况
代码语言:javascript
复制
[root@centos7 ~]# sar -w
Linux 3.10.0-1127.18.2.el7.x86_64 (centos7)  03/28/2021  _x86_64_ (1 CPU)

11:10:02 AM    proc/s   cswch/s
11:20:01 AM      0.02     19.10
11:30:01 AM      0.03     19.92
11:40:01 AM      0.02     19.45
Average:         0.02     19.49
查看I/O和传送速率的统计信息
代码语言:javascript
复制
[root@centos7 ~]# sar -b
Linux 3.10.0-1127.18.2.el7.x86_64 (centos7)  03/28/2021  _x86_64_ (1 CPU)

11:10:02 AM       tps      rtps      wtps   bread/s   bwrtn/s
11:20:01 AM      0.06      0.00      0.06      0.00      0.74
11:30:01 AM      0.03      0.00      0.03      0.00      0.40
Average:         0.05      0.00      0.05      0.00      0.57

输出字段说明

代码语言:javascript
复制
tps       #每秒钟物理设备的 I/O 传输总量                   
rtps      #每秒钟从物理设备读入的数据总量                  
wtps      #每秒钟向物理设备写入的数据总量                  
bread/s   #每秒钟从物理设备读入的数据量,单位为 块/s    
bwrtn/s   #每秒钟向物理设备写入的数据量,单位为 块/s
查看块设备
代码语言:javascript
复制
[root@CentOS7-1 ~]# sar -d 1 2
Linux 3.10.0-1127.18.2.el7.x86_64 (CentOS7-1)  01/18/2024  _x86_64_ (1 CPU)

04:42:51 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
04:42:52 AM    dev8-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:42:52 AM   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:42:52 AM  dev253-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:42:52 AM  dev253-1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

04:42:52 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
04:42:53 AM    dev8-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:42:53 AM   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:42:53 AM  dev253-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:42:53 AM  dev253-1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

04:42:53 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
04:42:54 AM    dev8-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:42:54 AM   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:42:54 AM  dev253-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
04:42:54 AM  dev253-1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

输出的信息说明

代码语言:javascript
复制
tps #每秒从物理磁盘 I/O 的次数。
rd_sec/s #每秒读扇区的次数。
wr_sec/s #每秒写扇区的次数。
avgrq-sz #平均每次设备 I/O 操作的数据大小(扇区)。
avgqu-sz #磁盘请求队列的平均长度。
await    #从请求操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1 秒=1000 毫秒)。
svctm #系统处理每次请求的平均时间,不包括在请求队列中消耗的时间。
%util #I/O 请求占 CPU 的百分比,比率越大,说明越饱和。

高级功能

多系统监控

sar命令可以在多个系统之间进行分布式监控,并汇总各个系统的性能数据。用户可以使用“-A”选项来指定要监控的系统,并使用“-f”选项指定数据文件。

生成自定义报告

sar 命令可以将收集到的数据以表格或图形方式显示,并支持生成自定义报告。用户可以使用“-o”选项指定报告文件名,并使用“-f”选项指定数据文件。

报警和通知

sar命令可以配置报警和通知功能,当系统资源使用超过预设阈值时,自动发送警报或通知给相关人员。

数据导出和导入

sar 命令可以将收集到的数据导出为文件,以便在其他工具中进行进一步分析。同时,用户也可以从文件中导入数据,以进行历史数据比较或其他用途。

与其他工具集成

sar命令可以与其他系统管理工具集成,如Nagios、Zabbix等,以实现自动化监控和报警功能。

总结

总之,sar 命令是一个功能强大的监控工具,具有、报告生成、多系统监控、自定义监控选项、报警和通知、数据导出和导入以及与其他工具集成等高级功能。通过合理使用这些功能,用户可以更好地了解系统性能状况并进行相应的优化和调整。

这么牛逼的命令行工具,你确定不整一下?

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-01-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 民工哥技术之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 安装
  • 常用功能介绍
    • sar命令和top命令区别
    • 应用举例
    • 高级功能
      • 多系统监控
        • 生成自定义报告
          • 报警和通知
            • 数据导出和导入
              • 与其他工具集成
              • 总结
              相关产品与服务
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档