You need to enable JavaScript to run this app.
导航

性能分析

最近更新时间2023.09.06 16:25:51

首次发布时间2022.09.13 17:07:48

性能分析包括任务管理和分析查询两部分。您可以创建采集配置对服务进行周期性内容采集,然后再分析查询中进行分析处理。

任务管理入口

  • 全局入口
    1. 登录应用性能监控全链路版控制台
    2. 在左侧导航栏,单击服务端监控
    3. 选择开服region。
    4. 单击服务端监控右侧的点击进入服务端列表
    5. 选择全部功能 > 任务管理
      任务管理集中管理租户下的性能分析采集任务。
  • 服务入口
    1. 登录应用性能监控全链路版控制台
    2. 在左侧导航栏,单击服务端监控
    3. 选择开服region。
    4. 单击服务端监控右侧的点击进入服务端列表
    5. 单击服务名称进入服务详情页面。
    6. 单击性能分析页签。

创建采集配置

图片
采集配置的参数说明:

参数

说明

任务名称

设置任务名称。

服务名称

选择服务。

采集范围

  • 整个服务
  • 执行进程

采集内容

选择采集内容。

采集方式

  • 即时采集
    • 开始时间:设置开始时间。默认立即执行。
    • 持续时间:设置采集时长。输入范围1~10分钟。
      说明:即时采集可能有1~3分钟的延迟。
  • 持续采集
    持续采集数据,每60秒上报一次。
  • 条件采集
    触发条件设置指标阈值。
    说明:满足任意一个条件则采集60秒数据。

是否启用

  • 启用。
  • 不启用。

注意

  • 采集过程中可能对性能造成影响。
  • 采集范围选择指定进程,服务升级可能会导致进程丢失。
  • 同一个服务有开启的持续采集任务时,其他任务停止下发,持续采集任务结束后再恢复。

Java采集内容

Java采集内容

说明

CPU

CPU代码执行快照统计

Allocation

内存分配查分统计

Throwable

异常和错误量。

Synchronization

同步状态统计,包括Monitor Enter、Monitor Wait和Thread Park。

File I/O

文件读写耗时和读写量

Socket I/O

Socket读写耗时和读写量

Java条件采集

Java条件采集

说明

CPU使用率

进程在当前采样周期内使用的CPU核数/总核数。

  • 运行在宿主机时,总核数=机器核数。
  • 运行在容器内时,总核数=容器的CPU限额。
  • 若未限制,取宿主机核数。

环比计算方式:当前值相比前5个周期平均值的变化率。

内存使用率

进程当前的RSS/总内存。

  • 运行在宿主机时,总内存=机器内存。
  • 运行在容器内时,总内存=容器的内存限额。
  • 若未限制,取宿主机内存。

环比计算方式:当前值相比前5个周期平均值的变化率。

线程数量

进程当前的线程数量。
环比计算方式:当前值相比前5个周期平均值的变化率。

Go采集内容

Go采集内容

说明

CPU

CPU代码执行快照统计

Heap

内存分配与使用情况,可采集当前时刻或指定时间进行差分时刻

Block

goroutine等待互斥操作的时间,可采集当前时刻快照或指定时长进行差分采集

Mutex

因互斥锁导致其他goroutine等待的时间,可采集当前时刻快照或指定时长进行差分采集

GoRoutine

GoRoutine数量,可采集当前时刻快照或指定时长进行差分采集

Go条件采集

Go条件采集

说明

CPU使用率

进程在当前采样周期内使用的CPU核数/总核数。

  • 运行在宿主机时,总核数=机器核数。
  • 运行在容器内时,总核数=容器的CPU限额。
  • 若未限制,取宿主机核数。

环比计算方式:当前值相比前5个周期平均值的变化率。
当go语言设置了runtime.GOMAXPROCS,最终的总核数=min(前面计算出的总核数, runtime.GOMAXPROCS)。

内存使用率

进程当前的RSS/总内存。

  • 运行在宿主机时,总内存=机器内存。
  • 运行在容器内时,总内存=容器的内存限额。
  • 若未限制,取宿主机内存。

环比计算方式:当前值相比前5个周期平均值的变化率。

goroutine数量

进程当前的goroutine数量。
环比计算方式:当前值相比前5个周期平均值的变化率。

按配置聚合查看任务详情

Java性能指标

火焰图

图片
火焰图展示了该服务该采集配置下的最新的调用的占比和深度,用户可以查看各种数据类型的火焰图。
Java数据类型及说明:

Java数据类型

说明

CPU采样

采样期间内的堆栈快照统计

Native CPU采样

采样期间内的native调用堆栈快照统计

内存分配

采样期间内的累积内存分配大小

异常数量

采样期间内的累积抛出异常数量

Monitor Blocked次数

采样期间内Java监视器阻塞次数

Monitor Blocked耗时

采样期间内Java监视器阻塞耗时

Monitor Wait耗时

采样期间内Java监视器等待耗时

Thread Park耗时

采样期间内线程Park耗时

文件读取耗时

采样期间内文件读取耗时

文件读取量

采样期间内文件读大小

文件写入耗时

采样期间内文件写入耗时

文件写入量

采样期间内文件写入大小

Socket读取耗时

采样期间内Socket读取耗时

Socket读取量

采样期间内Socket读取量

Socket写入耗时

采样期间内Socket写入耗时

Socket写入量

采样期间内Socket写入大小

筛选聚合按照选中的维度由大到小的顺序进行聚合排序,支持的维度有线程、方法、类和包名。

调用树

图片
调用树以树状图的形式展示了该服务该采集配置下调用横向展开,方便用户聚焦问题。

JVM基础信息

图片
JVM基础信息展示了采集数据后所有上报里最近一次上报的数据。

Go性能指标

火焰图

图片
火焰图展示了该服务该采集配置下的最新的调用的占比和深度,用户可以查看各种数据类型的火焰图。

Go数据类型

说明

CPU

采集期间的CPU使用时间

Alloc Space(快照)

从程序启动至采样时刻的累积内存分配大小(alloc_space). 持续采集和条件采集不记录此数据

Alloc Object(快照)

从程序启动至采样时刻的累积内存分配对象数(alloc_objects). 持续采集和条件采集不记录此数据

inuse Space(快照)

采样时刻使用中的内存大小(inuse_space)

inuse Object(快照)

采样时刻使用中的内存对象数(inuse_objects)

Alloc Space(差分)

采样期间的内存分配大小(alloc_space, delta profile)

Alloc Object(差分)

采样期间的内存分配对象数(alloc_objects, delta profile)

inuse Space(差分)

采样起止时刻内存使用大小的变化值(inuse_space, delta profile). 持续采集和条件采集不记录此数据

inuse Object(差分)

采样起止时刻内存使用对象数的变化值(inuse_objects, delta profile). 持续采集和条件采集不记录此数据

Block(快照)

从程序启动至采样时刻的累积block时间. 持续采集和条件采集不记录此数据

Block(差分)

采样期间的block时间

Mutex(快照)

从程序启动至采样时刻的累积mutex时间. 持续采集和条件采集不记录此数据

Mutex(差分)

采样期间的mutex时间

Goroutine(快照)

采样时刻的goroutine数量

Goroutine(差分)

采样起止时刻goroutine数量变化值. 持续采集和条件采集不记录此数据

调用树

图片
调用树以树状图的形式展示了该服务该采集配置下调用横向展开,方便用户聚焦问题。

GoRuntime信息

图片
goRuntime信息展示了go最近一次上报时的环境信息。

单次上报列表查看任务详情

图片
单次上报列表是该服务下的所有的采集数据列表。

参数

说明

CPU使用率

占用核数/总核数

内存分配速率

每秒分配的内存大小

内存使用率

进程RSS/总内存

Java性能指标

火焰图

图片
火焰图展示了本次上报的调用的占比和深度,用户可以查看各种数据类型的火焰图。

调用树

图片
调用树以树状图的形式展示了该服务该采集配置下调用横向展开,方便用户聚焦问题。

JVM基础信息

图片
JVM基础信息展示了采集数据时的系统配置。

Go性能指标

火焰图

图片
火焰图展示了本次上报的调用的占比和深度,用户可以查看各种数据类型的火焰图。

调用树

图片
调用树以树状图的形式展示了本次调用横向展开,方便用户聚焦问题。

goRuntime信息

图片
goRuntime信息展示了go上报时的环境信息。

分析查询

分析查询展示了全局的所有服务的采集任务。
图片

  • 分析查询列表展示了所有服务的采集任务列表。
  • 支持按照采集任务名称查询任务。单击采集任务可进入单次上报列表。