Linux性能监控-sar

Linux性能监控-sar

sar是一个非常全面的一个分析工具,对文件的读写,系统调用的使用情况,磁盘IO,CPU相关使用情况,内存使用情况,进程活动等都可以进行有效的分析。sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的特点是可以连续对系统取样,获得大量的取样数据。取样数据和分析的结果都可以存入文件,使用它时消耗的系统资源很小。

–help查看一下:

[root@iZuf657isp1alim7einvk6Z ~]# sar --help
用法: sar [ 选项 ] [  [  ] ]
Options are:
[ -A ] [ -b ] [ -B ] [ -C ] [ -d ] [ -h ] [ -m ] [ -p ] [ -q ] [ -r ] [ -R ]
[ -S ] [ -t ] [ -u [ ALL ] ] [ -v ] [ -V ] [ -w ] [ -W ] [ -y ]
[ -I {  [,...] | SUM | ALL | XALL } ] [ -P {  [,...] | ALL } ]
[ -j { ID | LABEL | PATH | UUID | ... } ] [ -n {  [,...] | ALL } ]
[ -o [  ] | -f [  ] ] [ --legacy ]
[ -i  ] [ -s [  ] ] [ -e [  ] ]

-A:所有报告的总和。

-u:输出CPU使用情况的统计信息。

-v:输出inode、文件和其他内核表的统计信息。

-d:输出每一个块设备的活动信息。

-r:输出内存和交换空间的统计信息。

-b:显示I/O和传送速率的统计信息。

-R:输出内存页面的统计信息。

-y:终端设备活动情况。

-w:输出系统交换活动信息。

-B:显示换页状态。

-e:设置显示报告的结束时间。

-f:从指定文件提取报告。

-i:设状态信息刷新的间隔时间。

-p:报告每个CPU的状态。

-q:平均负载分析。

下面介绍几个常用的:

1、统计CPU使用情况

命令:sar -u 1 3,统计CPU的使用情况,每间隔1秒钟统计一次总共统计三次。

[root@iZuf657isp1alim7einvk6Z ~]# sar -u 1 3
Linux 2.6.32-754.23.1.el6.x86_64 (iZuf657isp1alim7einvk6Z)     2022年09月04日     _x86_64_    (8 CPU)

23时55分22秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
23时55分23秒     all     14.81      0.00      1.14      8.35      0.00     75.70
23时55分24秒     all     14.34      0.00      1.26      7.42      0.00     76.98
23时55分25秒     all     14.18      0.00      1.01      7.47      0.00     77.34
平均时间:     all     14.44      0.00      1.14      7.75      0.00     76.67

%user:用户空间的CPU使用。

%nice:改变过优先级的进程的CPU使用率。

%system:内核空间的CPU使用率。

%iowait:CPU等待IO的百分比。

%steal:虚拟机的虚拟机CPU使用的CPU。

%idle:空闲的CPU。

在以上的显示当中,主要看%iowait和%idle,%iowait过高表示存在I/O瓶颈,即磁盘IO无法满足业务需求,如果%idle过低表示CPU使用率比较严重,需要结合内存使用等情况判断CPU是否瓶颈。

2、内存统计分析

命令:sar -r 1 3,查看内存使用情况,每间隔1秒钟统计一次总共统计三次。

[root@iZuf657isp1alim7einvk6Z ~]# sar -r 1 3
Linux 2.6.32-754.23.1.el6.x86_64 (iZuf657isp1alim7einvk6Z)     2022年09月05日     _x86_64_    (8 CPU)

00时01分16秒 kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit
00时01分17秒    369456  32510660     98.88    128704   7057296  20432776     62.14
00时01分18秒    365828  32514288     98.89    128704   7061612  20432776     62.14
00时01分19秒    359528  32520588     98.91    128704   7066180  20436368     62.15
平均时间:    364937  32515179     98.89    128704   7061696  20433973     62.15

kbmemfree:空闲的物理内存大小。

kbmemused:使用中的物理内存大小。

%memused:物理内存使用率。

kbbuffers:内核中作为缓冲区使用的物理内存大小,kbbuffers和kbcached:这两个值就是free命令中的buffer和cache。

kbcached:缓存的文件大小。

kbcommit:保证当前系统正常运行所需要的最小内存,即为了确保内存不溢出而需要的最少内存(物理内存+Swap分区)。

%commit:这个值是kbcommit与内存总量(物理内存+swap分区)的一个百分比的。

3、平均负载统计分析

命令:sar -q 1 3,查看内存使用情况,每间隔1秒钟统计一次总共统计三次。

[root@iZuf657isp1alim7einvk6Z ~]# sar -q 1 3
Linux 2.6.32-754.23.1.el6.x86_64 (iZuf657isp1alim7einvk6Z)     2022年09月05日     _x86_64_    (8 CPU)

00时04分57秒   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15
00时04分58秒         1       646      1.91      1.82      1.75
00时04分59秒         1       646      1.91      1.82      1.75
00时05分00秒         1       646      1.91      1.82      1.75
平均时间:         1       646      1.91      1.82      1.75

runq-sz:运行队列的长度(等待运行的进程数,每核的CP不能超过3个)。

plist-sz:进程列表中的进程(processes)和线程数(threads)的数量。

ldavg-1:最后1分钟的CPU平均负载,即将多核CPU过去一分钟的负载相加再除以核心数得出的平均值,5分钟和15分钟以此类推。

ldavg-5:最后5分钟的CPU平均负载。

ldavg-15:最后15分钟的CPU平均负载。

4、统计swap分区

命令:sar -W 1 3,查看系统swap分区的统计信息:每间隔1秒钟统计一次总共统计三次。

[root@iZuf657isp1alim7einvk6Z ~]# sar -W 1 3
Linux 2.6.32-754.23.1.el6.x86_64 (iZuf657isp1alim7einvk6Z)     2022年09月05日     _x86_64_    (8 CPU)

00时07分01秒  pswpin/s pswpout/s
00时07分02秒      0.00      0.00
00时07分03秒      0.00      0.00
00时07分04秒      0.00      0.00
平均时间:      0.00      0.00

pswpin/s:每秒从交换分区到系统的交换页面(swap page)数量。

pswpott/s:每秒从系统交换到swap的交换页面(swap page)的数量。

5、查看磁盘使用情况

命令:sar -d 1 3,磁盘使用详情统计,每间隔1秒钟统计一次总共统计三次。

[root@iZuf657isp1alim7einvk6Z ~]# sar -d 1 3
Linux 2.6.32-754.23.1.el6.x86_64 (iZuf657isp1alim7einvk6Z)     2022年09月05日     _x86_64_    (8 CPU)

00时09分05秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
00时09分06秒  dev252-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
00时09分06秒 dev252-16      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

00时09分06秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
00时09分07秒  dev252-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
00时09分07秒 dev252-16      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

00时09分07秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
00时09分08秒  dev252-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
00时09分08秒 dev252-16      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

平均时间:       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
平均时间:  dev252-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间: dev252-16      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

DEV:磁盘设备的名称。

tps:每秒I/O的传输总数。

rd_sec/s:每秒读取的扇区的总数。

wr_sec/s:每秒写入的扇区的总数。

avgrq-sz:平均每次次磁盘I/O操作的数据大小(扇区)。

avgqu-sz:磁盘请求队列的平均长度。

await:从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1秒等于1000毫秒),等于寻道时间+队列时间+服务时间。

svctm:I/O的服务处理时间,即不包括请求队列中的时间。

%util:I/O请求占用的CPU百分比,值越高,说明I/O越慢。

6、查看磁盘IO

命令:sar -b 1 3,查看I/O和传递速率的统计信息,每间隔1秒钟统计一次总共统计三次。

[root@iZuf657isp1alim7einvk6Z ~]# sar -b 1 3
Linux 2.6.32-754.23.1.el6.x86_64 (iZuf657isp1alim7einvk6Z)     2022年09月05日     _x86_64_    (8 CPU)

00时12分08秒       tps      rtps      wtps   bread/s   bwrtn/s
00时12分09秒      0.00      0.00      0.00      0.00      0.00
00时12分10秒      2.08      0.00      2.08      0.00     41.67
00时12分11秒      7.00      0.00      7.00      0.00    144.00
平均时间:      3.07      0.00      3.07      0.00     62.80

tps:磁盘每秒钟的IO总数,等于iostat中的tps。

rtps:每秒钟从磁盘读取的IO总数。

wtps:每秒钟从写入到磁盘的IO总数。

bread/s:每秒钟从磁盘读取的块总数。

bwrtn/s:每秒钟此写入到磁盘的块总数。

Original: https://www.cnblogs.com/ayic/p/16656558.html
Author: Yi00
Title: Linux性能监控-sar

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/577966/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 试吃香甜可口的《程序员面试指南》

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月6日
    077
  • 全新UI西游H5决战天宫游戏详细图文架设教程

    前言 想体验经典Q版西游霸服快乐吗?想体验满级VIP的尊贵吗?想体验一招秒杀的爽快吗?各种极品炫酷时装、坐骑、翅膀、宠物通通给你,就在全新UI西游H5决战天宫! 本文讲解决战天宫架…

    Linux 2023年6月7日
    0104
  • Linux-系统启动与MBR扇区修复

    1.系统启动过程 1.1 MBR扇区 1.2 MBR扇区的备份与还原 1.3 修复MBR 1.3.1 dd备份MBR信息 1.3.2 光驱启动修复 1.4 grub故障修复 1.系…

    Linux 2023年5月27日
    0131
  • redis的事件处理机制

    redis的事件处理机制 redis是单进程,单线程模型,与nginx的多进程不同,与golang的多协程也不同,”工作的工人”那么少,可那么为什么redi…

    Linux 2023年5月28日
    0108
  • OS模块中获取当前文件的绝对路径的相关方法

    os.path.realpath(file) 作用:获取当前执行py脚本的绝对路径(在当前工作目录下的绝对路径) file : 表示当前文件的本身,一般值是当前文件的相对路径 例如…

    Linux 2023年6月7日
    092
  • ShardingSphere-proxy-5.0.0分布式哈希取模分片实现(四)

    一、说明 主要是对字符串的字段进行hash取模 二、修改配置文件config-sharding.yaml,并重启服务 # Licensed to the Apache Softwa…

    Linux 2023年6月14日
    079
  • gcc/g++与动静库以及gdb

    gcc/g++ 程序转换为二进制 总共需要经过4个大步骤:1.预处理,2.编译,3.汇编,4.链接。 想要更深刻的了解它,可以通过Linux去深刻的了解他们。 先创建.C文件 并且…

    Linux 2023年6月13日
    091
  • pwm驱动

    1.1、参考博客 参考的教程如下: 1.2、什么是PWM 脉冲宽度调制(PWM),是英文”Pulse Width Modulation”的缩写,简称脉宽调制…

    Linux 2023年6月13日
    0112
  • Feign 进行rpc 调用时使用ribbon负载均衡源码解析

    转载请注明出处: Feign客户端接口的动态代理生成是基于JDK的动态代理来实现的,那么在所有的方法调用的时候最终都会走InvocationHandler接口的实现,默认就是Ref…

    Linux 2023年6月14日
    076
  • anaconda创建虚拟环境

    anaconda创建虚拟环境 1·查看当前存在的虚拟环境 conda env list 或者 conda info -e 2·创建虚拟环境,环境名重要 conda create -…

    Linux 2023年6月14日
    099
  • Vue3 封装 Element Plus Menu 无限级菜单组件

    本文分别使用 SFC(模板方式)和 tsx 方式对 Element Plus el-menu 组件进行二次封装,实现配置化的菜单,有了配置化的菜单,后续便可以根据路由动态渲染菜单。…

    Linux 2023年6月7日
    0146
  • 基本数据类型的长度

    32位机器和64位机器中int、char等数据类型所占字节长度对比。 在32位机器和64机器中int类型都占用4个字节。编译器可以根据自身硬件来选择合适的大小,但是需要满足约束:s…

    Linux 2023年6月13日
    094
  • 2021 个人年度小结

    因为不用考研,所以大四一整年可以自由自在地学习一直以来想学却又没时间去学的东西。快乐的大四时光总是显得十分短暂,这篇博客主要用来总结过去一年所学的知识。 计算机组成原理 上的是哈尔…

    Linux 2023年6月7日
    0101
  • 【XML】学习笔记第四章-schema

    Schema 概述 作用 与DTD相比Schema的优势 基础命名空间: 模式 引用方法 通过xsi:noNamespaceSchemaLocation引入 通过xsi:shema…

    Linux 2023年6月14日
    090
  • 挂载mount

    挂载mount 1.查看系统挂载的磁盘情况 df df -h 2.挂载:mount 将光驱挂在到/mnt目录: mount /dev/cdrom /mnt #mount 准备挂载的…

    Linux 2023年6月11日
    094
  • php微信分账功能 —— app支付

    /** 微信分账功能 $out_order_no 系统自定义的单号 $transaction_id 微信支付单号 $profitSharingAccounts array 分账接收…

    Linux 2023年6月7日
    087
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球