• 鲲鹏devkit性能分析工具介绍(一)


    鲲鹏devkit性能分析工具介绍(一)

    鲲鹏性能分析工具由四个子工具组成,分别为:系统性能分析、Java性能分析、系统诊断和调优助手。

    系统性能分析是针对基于鲲鹏的服务器的性能分析工具,能收集服务器的处理器硬件、操作系统、进程/线程、函数等各层次的性能数据,分析系统性能指标,定位到系统瓶颈点及热点函数,并给出优化建议。该工具可以辅助用户快速定位和处理软件性能问题。

    Java性能分析是针对基于鲲鹏的服务器上运行的Java程序的性能分析和优化工具,能图形化显示Java程序的堆、线程、锁、垃圾回收等信息,收集热点函数、定位程序瓶颈点,帮助用户采取针对性优化。

    系统诊断是针对基于鲲鹏的服务器的性能分析工具,提供内存泄漏诊断(包括内存未释放和异常释放)、内存越界诊断、内存消耗信息分析展示、OOM诊断能力、网络丢包等,帮助用户识别出源代码中内存使用的问题点,提升程序的可靠性,工具还支持压测系统,如:网络IO诊断,评估系统最大性能。

    调优助手是针对基于鲲鹏的服务器的调优工具,能系统化组织性能指标,引导用户分析性能瓶颈,实现快速调优。
    在这里插入图片描述

    工具的目标用户

    作为一款性能分析工具,它具有这广泛的使用场景,同时也适合如下的目标用户
    软件运行分析适合软件开发人员(以软件的运行情况为分析的起点)
    主要分析的是:热点函数并发控制锁与等待
    系统资源分析适合系统资源管理/poc人员(以系统资源分析为起点)
    主要分析的是:系统配置系统资源使用资源调度NUMA访问
    在这里插入图片描述

    软件架构

    工具从软件逻辑上分成Analysis Server 和Agent两大部分:

    Analysis Server:主要作用是实现性能数据分析及分析结果呈现
    Agent:主要作用是实现性能数据采集

    下面是鲲鹏性能分析工具的软件架构图
    在这里插入图片描述

    全景分析

    通过采集系统软硬件配置信息,以及系统CPU、内存、存储IO、网络IO资源的运行情况,获得对应的使用率、饱和度、错误次数等指标,以此识别系统性能瓶颈。针对部分系统指标项,根据当前已有的基准值和优化经验提供优化建议。

    针对大数据场景、数据库场景和分布式存储场景的硬件配置、系统配置和组件配置进行检查并显示不是最优的配置项,同时分析给出典型硬件配置及软件版本信息。

    • 以全景图的方式展示服务器及其子系统的TOPO结构及其配置。方便用户快速了解系统配置,及是否存在配置不合理的点,例如内存条配置位置
    • 基于use性能分析方法,针对系统cpu、内存、磁盘IO、网络IO资源的运行情况,获得他们的使用率、饱和度、错误等指标,一次识别系统瓶颈
    • 针对大数据、数据库、分布式存储场景的硬件配置、系统配置和组件配置进行检查并显示不上最优的配置项,同时分析出典型硬件配置及软件版本信息
    • 综合分析性能和系统配置情况,给出检测到的系统性能瓶颈,并给出优化建议和修改方案
      在这里插入图片描述

    全景分析原理

    基于USE性能分析方法,获得系统资源的使用率、饱和度、错误等指标,依次识别系统瓶颈

    • 使用率:在规定的时间间隔内,资源用于服务工作的时间百分比。虽然资源繁忙,但是资源还有能力接受更多工作的程度被视为饱和度
    • 饱和度:资源不能在服务更多额外工作的程度,通常有等待队列
    • 错误:错误事件的个数
      在这里插入图片描述

    CPU重点指标解读

    %sys:该指标表示cPu花了多少比例的时间在内核空间运行,分配内存、I0操作、创建子进程等都是内核操作,所以当该指标较高时,建议:
    1、检查系统上是否存在大量lo操作。如果存在建议更换高性能lo设备,或减少o操作
    2、2.如果lo操作不多,建议检查内核、驱动是否有问题。
    在这里插入图片描述
    %iowait:当该指标占用率过高的时候,通常意味着某些程序的Io操作效率很低。或者O对应设备的性能很低以至于读写操作需要很长的时间来完成,所以当该指标较高时,建议议更换高性能O设备或减少IO操作。

    内存重点指标解读

    pgpgin/s

    每秒从磁盘或SWAP置换到内存的字节数(KB)。

    pgpgout/s

    每秒从内存置换到磁盘或SWAP的字节数(KB)。
    pgscank/s

    每秒被kswapd守护进程扫描的分页数量。

    pgscand/s

    每秒直接被扫描的分页数量。
    pswpin/s

    系统每秒换入的交换分区页面总数。

    pswpout/s

    系统每秒换出的交换分区页面总数。
    memused (KB)

    已使用的内存大小,以KB为单位。包括缓冲区和缓存的空间。

    %memused

    已使用内存的百分比,即memused(KB)/(memused(KB)+memfree(KB))。
    在这里插入图片描述

    存储IO重点指标解读

    avgrq-sz

    平均每次存储I/O操作的数据大小(以扇区为单位)。

    avgqu-sz

    磁盘请求队列的平均长度。
    %util

    在I/O请求发送到设备期间所消耗的CPU时间百分比(设备的带宽使用率)。当该值接近100%时说明磁盘读写将近饱和。
    svctm

    系统处理每次请求的平均时间(以毫秒为单位),不包括在请求队列中消耗的时间。
    在这里插入图片描述

    网络IO重点指标解读

    rxdrop/s

    当Linux缓冲区满的时候,网卡设备接收端每秒钟丢弃的数据包的数量。

    txdrop/s

    当Linux缓冲区满的时候,网络设备发送端每秒钟丢弃的网络包的数量。
    rxfifo/s

    在接收数据包时,每秒发生FIFO溢出错误的次数。

    txfifo/s

    当发送数据包时,每秒发生FIFO溢出错误的次数。
    在这里插入图片描述

    重点系统配置解读

    由于TLB映射记录数量有限。使用更大的页面可以增加从缓存转换的内存范国,从而减少TLB未命中而提高性能
    在这里插入图片描述

  • 相关阅读:
    anaconda安装配置
    Windows系统下设置程序开机自启(WinSW)
    聊聊spring中bean的作用域
    个人博客测试报告
    springboot+实验课程辅助管理系统 毕业设计-附源码191113
    Linux驱动开发:深入理解I2C时序
    使用docker搭建drogon windows10,linux,mac下开发环境
    项目开发的详细步骤(精华版)
    Spring Cloud框架学习-Spring Cloud Config + Bus 实现配置中心
    Tomcat 源码分析 (整体架构) (一)
  • 原文地址:https://blog.csdn.net/m0_63694520/article/details/128068687