本文共 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 的使用情况,可以使用以下命令:
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
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/