sar 是一个系统活动报告工具,既可以实时查看系统的当前活动,又可以配置保存和报告历史统计数据。

安装:yum install sysstat -y

常用选项:

    -n DEV:显示网卡相关的统计信息

    -r -S:显示内存、swap相关的使用情况

示例一:统计当前网络接口的收发情况:

[root@nginx ~]# sar -n DEV 1
Linux 5.2.0-1.el7.elrepo.x86_64 (nginx) 	07/14/2019 	_x86_64_	(4 CPU)

11:21:29 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil
11:21:30 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11:21:30 AM   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11:21:30 AM veth46a4812      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11:21:30 AM     ens33      1.00      1.00      0.06      0.17      0.00      0.00      0.00      0.00

11:21:30 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil
11:21:31 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11:21:31 AM   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11:21:31 AM veth46a4812      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11:21:31 AM     ens33      2.00      2.00      0.13      0.71      0.00      0.00      0.00      0.00
  • rxpck/s 和 txpck/s 分别是接收和发送的 PPS,单位为包 / 秒。

  • rxkB/s 和 txkB/s 分别是接收和发送的吞吐量,单位是 KB/ 秒。

  • rxcmp/s 和 txcmp/s 分别是接收和发送的压缩数据包数,单位是包 / 秒。

  • %ifutil 是网络接口的使用率,即半双工模式下为 (rxkB/s+txkB/s)/Bandwidth,而全双工模式下为 max(rxkB/s, txkB/s)/Bandwidth。

注:PPS、吞吐量、网络接口的带宽使用率、延时、可用性、丢包率、重传率为网络的性能监控重要指标

示例二:查看内存、swap的使用情况

[root@iz2ze27xcx6m5ygb0gqfsuz data]# sar -r -S 1
Linux 3.10.0-514.26.2.el7.x86_64 (iz2ze27xcx6m5ygb0gqfsuz) 	07/18/2019 	_x86_64_	(4 CPU)

10:02:01 AM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
10:02:02 AM    486168  15781788     97.01    166684   8865640  11565868     71.10   7496092   7615772       440

10:02:01 AM kbswpfree kbswpused  %swpused  kbswpcad   %swpcad
10:02:02 AM         0         0      0.00         0      0.00

10:02:02 AM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
10:02:03 AM    486044  15781912     97.01    166684   8865640  11565868     71.10   7496084   7615772       440

10:02:02 AM kbswpfree kbswpused  %swpused  kbswpcad   %swpcad
10:02:03 AM         0         0      0.00         0      0.00
  • kbcommit,表示当前系统负载需要的内存。它实际上是为了保证系统内存不溢出,对需要内存的估计值。%commit,就是这个值相对总内存的百分比。

  • kbactive,表示活跃内存,也就是最近使用过的内存,一般不会被系统回收

  • kbinact,表示非活跃内存,也就是不常访问的内存,有可能会被系统回收

注:也可以通过/proc/zoneinfo文件,观察剩余内存、内存阈值、匿名页、文件页的活跃情况