博客
关于我
linux程序分析工具介绍(三)——sar
阅读量:794 次
发布时间:2023-02-05

本文共 4355 字,大约阅读时间需要 14 分钟。

sar 是 Linux 下一个非常实用的工具,用于分析系统运行状况。作为系统管理员或开发人员,我们需要了解系统的资源使用情况,特别是内存、CPU 和 IO 的使用状态。只有了解这些资源的使用情况,我们才能更好地优化应用程序性能,确保其在操作系统中稳定运行。

内存使用情况

sar 提供了多种选项来查看内存使用情况。以下是常用的命令示例:

sar -r 1 3

该命令会输出当前系统内存使用情况,包括:

  • kbmemfree:空闲内存大小
  • kbmemused:已使用内存大小
  • %memused:内存使用率
  • kbcommit:内存 commitment 大小
  • kbactive:实际使用的内存大小

以下是实际运行结果示例:

wuzesheng@ubuntu:~/work/test$ sar -r 1 3Linux 2.6.38-8-generic (ubuntu) 07/09/2011 _i686_ (2 CPU) 06:33:01 PMkbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact458664    566488    55.26     96268    265056   1034780     49.95    262500    254888458664    566488    55.26     96268    265056   1034780     49.95    262468    254888458696    566456    55.26     96268    265056   1034780     49.95    262468    254888Average:458675    566477    55.26     96268    265056   1034780     49.95    262479    254888

通过 sar -r 命令,我们可以清楚地看到系统内存的使用情况,包括空闲内存、已使用内存以及内存使用率等信息。

换页统计

为了了解系统如何管理内存中的换页操作,sar 提供了 -B 选项:

sar -B 1 3

该命令会输出以下信息:

  • pgpgin/s:每秒进程页数
  • pgpgout/s:每秒进程页出数
  • fault/s:总的缺页数
  • majflt/s:主页错误数
  • pgfree/s:释放页数
  • pgscank/s:扫描页数
  • pgscand/s:扫描并加载页数
  • pgsteal/s:被其他进程复制的页数

以下是实际运行结果示例:

wuzesheng@ubuntu:~/work/test$ sar -B 1 3Linux 2.6.38-8-generic (ubuntu) 07/09/2011 _i686_ (2 CPU) 06:56:48 PMpgpgin/s pgpgout/s fault/s majflt/s pgfree/s pgscank/s pgscand/s pgsteal/s %vmeff0.00      0.00   1438.00      0.00   3001.00      0.00      0.00      0.00      0.000.00      0.00    796.00      0.00   1620.00      0.00      0.00      0.00      0.000.00      0.00    770.00      0.00   1580.00      0.00      0.00      0.00      0.00Average:0.00      0.00   1001.33      0.00   2067.00      0.00      0.00      0.00      0.00

通过 sar -B 命令,我们可以了解系统的换页频率和相关参数,判断是否存在内存压力或页面调度的问题。

CPU使用情况

要监控 CPU 的使用情况,可以使用以下命令:

sar -u ALL 1 3

该命令会输出以下信息:

  • CPU:总 CPU 使用情况
  • %user:用户进程占用的 CPU 百分比
  • %nice:用户进程优先级占用的 CPU 百分比
  • %system:系统进程占用的 CPU 百分比
  • %iowait:等待 I/O 操作完成的 CPU 百分比
  • %steal:被其他系统进程占用的 CPU 百分比
  • %irq:中断处理占用的 CPU 百分比
  • %soft:软件中断占用的 CPU 百分比
  • %guest:访客进程占用的 CPU 百分比
  • %idle:空闲 CPU 百分比

以下是实际运行结果示例:

wuzesheng@ubuntu:~/work/test$ sar -u ALL 1 3Linux 2.6.38-8-generic (ubuntu) 07/09/2011 _i686_ (2 CPU) 07:21:08 PMCPU      %usr     %nice   %system   %iowait    %steal      %irq     %soft    %guest     %idleall      1.01      0.00      1.01      0.00      0.00      0.00      0.00      0.00     97.98all      0.50      0.00      1.00      0.00      0.00      0.00      0.00      0.00     98.51all      0.99      0.00      0.99      0.00      0.00      0.00      0.00      0.00     98.02Average:all      0.83      0.00      1.00      0.00      0.00      0.00      0.00      0.00     98.17

通过 sar -u 命令,我们可以了解每个 CPU 的使用情况,包括用户进程、系统进程以及空闲状态等信息。

IO设备使用情况

要监控磁盘和网络 IO 的使用情况,可以分别使用以下命令:

磁盘 IO

sar -b 1 10

该命令会输出以下信息:

  • tps:每秒读取操作数
  • rtps:每秒读取操作数
  • wtps:每秒写入操作数
  • bread/s:每秒读取数据量
  • bwrtn/s:每秒写入数据量

以下是实际运行结果示例:

wuzesheng@ubuntu:~/work/test$ sar -b 1 10Linux 2.6.38-8-generic (ubuntu) 07/09/2011 _i686_ (2 CPU) 07:55:30 PMtps      rtps      wtps   bread/s   bwrtn/s0.00      0.00      0.00      0.00      0.000.00      0.00      0.00      0.00      0.000.00      0.00      0.00      0.00      0.006.00      0.00      6.00      0.00    112.000.00      0.00      0.00      0.00      0.000.00      0.00      0.00      0.00      0.0010.00      0.00     10.00      0.00     80.00Average:1.60      0.00      1.60      0.00     19.20

通过 sar -b 命令,我们可以监控磁盘 IO 的读写速率,判断磁盘是否是系统性能瓶颈。

网络 IO

要监控网络 IO 的使用情况,可以使用以下命令:

sar -n DEV 1 3

该命令会输出以下信息:

  • IFACE:网络接口名称
  • rxpck/s:每秒接收数据包数
  • txpck/s:每秒发送数据包数
  • rxkB/s:每秒接收数据量(KB/s)
  • txkB/s:每秒发送数据量(KB/s)
  • rxcmp/s:每秒接收的压缩数据包数
  • txcmp/s:每秒发送的压缩数据包数
  • rxmcst/s:每秒接收的多个数据包数(即 fragments)

以下是实际运行结果示例:

wuzesheng@ubuntu:~/work/test$ sar -n DEV 1 3Linux 2.6.38-8-generic (ubuntu) 07/09/2011 _i686_ (2 CPU) 08:05:33 PMIFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/slo      0.00      0.00      0.00      0.00      0.00      0.00      0.00eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00Average:lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00

通过 sar -n DEV 命令,我们可以监控网络接口的数据传输情况,包括数据包数量和数据速率。

总结

通过 sar 命令,我们可以全面监控 Linux 系统的资源使用情况,包括内存、CPU 和 IO。这些信息对于系统性能调优、故障排查和应用性能优化都非常有用。

转载地址:http://utkfk.baihongyu.com/

你可能感兴趣的文章
linux程序打印cr3寄存器,linux – 每次从内核模块读取时,为什么CR3寄存器内容会有所不同?...
查看>>
linux程序段错误原理,Linux 下c 程序段错误分析
查看>>
linux端口汇聚,linux端口聚合
查看>>
Linux端口状态含义
查看>>
linux端口监听默认ipv6,Nginx 监听 IPv6 地址的配置方法
查看>>
Linux笔记(usermod命令,用户密码管理,mkpasswd)
查看>>
linux笔记:目录处理命令ls,mkdir,cd,pwd,rmdir,cp,mv,rm
查看>>
linux符号大全
查看>>
Linux第一周学习 总结!
查看>>
linux第五章(迁移/home分区)
查看>>
linux简单的TCP与UDP的socket程序以及机器大小端的判断程序
查看>>
linux算性质的命令,(linux命令学习)找到相应性质的文件并删除
查看>>
Linux系列:centos7 开始 root用户 ssh 登录
查看>>
Linux系列:Harbor 1.9.3 升级到 2.8.0 的坑与过程
查看>>
Linux系列:Linux上杀毒软件有哪些?
查看>>
Linux系列:RPM安装 + yum安装 + 源码安装的区别&优缺点、CentOS下的yum安装 + yum源配置 + yum镜像源、Linux下的源码安装
查看>>
Linux系统 shell基础(一)
查看>>
Linux系统(Ubuntu)上安装单机版Redis详细指南
查看>>
linux系统/opt目录和/usr/local目录有什么区别
查看>>
linux系统rootkit恶意软件安全检测工具rkhunter安装部署、使用详解
查看>>