性能之巅第二版 第四章 观测工具

第四章 观测工具

学习目标

认识静态性能工具和危机排查工具

了解工具的类型和工具运行的开销,包括:计数器、剖析工具和跟踪工具

观测工具的来源

工具范围

分为静态性能工具和危机处理工具

工具类型

性能观测工具可以按照系统级别和进程级别来分类,多数的工具要么基于计数器要么基于事件

有些工具不止适合一个象限。

基于事件的工具包括剖析器和跟踪器。剖析器通过对事件进行一系列快照来观测活动,跟踪器记录每一个感兴趣的事件,本可以对他们进行处理。

 

固定计数器

内核维护了各种统计数据,称为计数器,用于对事件计数。通常计数器实现为无符号的整型数,发生事件时递增。

一个常见的内核方法是维护一对累积计数器,一个对事件计数,另一个用来记录事件的总时间。凭借计数器,我们可以直接获得事件数量。通过用总时间除以数量,可以得到事件的平均时间(延时),这就是众多系统数据统计的计算方式。

计数器的使用可以认为是“零开销”的,因为它们默认就是开启的,而且始终由内核维护。唯一的使用开销是从用户空间读取它们的时候(可以忽略不计)。

剖析

剖析(profiling)通过对目标收集采样或快照来归纳目标特征。

一个常见的剖析目标就是CPU的使用率,根据定时器来采集指令的指针或栈跟踪的样本,来描绘CPU消耗的代码路径。通常采集这些样本的速率是固定的。例如100hz(每秒的周期数)对所有CPU都采集一遍,并且持续时间不长,例如采集一分钟。

剖析工具,或者说剖析器(profiler),通常使用90Hz代替100Hz,避免采样与目标活动同一步调,因为这样可能会导致多算或少算。

剖析也能基于非计时的硬件事件,如CPU硬件缓存未命中或者总线活动。

与固定计数器不同,剖析(和跟踪)通常只在需要时才启用,因为它们在收集时可能会产生一些CPU开销,在存储时也会产生一些存储开销。

跟踪

跟踪每一次发生的记录事件,并可以存储事件的细节信息,供以后分析或生成摘要。这与剖析类似,但其目的是收集或检查所有的事件,而不仅仅是某个样本。与剖析相比,跟踪会有更高的CPU和存储的开销,可能会拖慢跟踪的目标。

监测

监测持续记录统计数据以备日后需要

硬件计数器

处理器和其他设备通常有硬件计数器用于观测活动。做主要观测来源的是处理器,在处理器里这类硬件计数器通常被称为性能监测计数器(PMC)

观测工具的观测

观测工具和构建在其上的统计都是由软件实现的,而所有的软件都是有潜在bug的。这对描述软件的文档来说也是一样的。用正常质疑的眼光来审视所有对你来说是新的统计数据,探究它们真实的意义以及是否真的正确。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
例题4.4.2是关于主成分分析的例题,其中给出了一组数据,包括5个变量和10个观测值。我们可以按照以下步骤进行主成分分析: 1. 数据标准化:对每个变量进行标准化处理,即减去该变量的均值,再除以该变量的标准差。 2. 计算协方差矩阵:将标准化后的数据计算协方差矩阵。 3. 计算特征值和特征向量:对协方差矩阵进行特征值分解,得到特征值和特征向量。 4. 选取主成分:按照特征值从大到小的顺序,选取前k个特征值所对应的特征向量,组成k个主成分。 5. 计算主成分得分:将每个观测值代入k个主成分的公式中,得到每个观测值在k个主成分上的得分。 在例题4.4.2中,经过标准化处理后,协方差矩阵为: ``` 1.00 0.98 0.74 0.79 0.90 0.98 1.00 0.67 0.73 0.85 0.74 0.67 1.00 0.92 0.88 0.79 0.73 0.92 1.00 0.89 0.90 0.85 0.88 0.89 1.00 ``` 特征值分解得到的特征值为: ``` 3.5567 0.8465 0.4060 0.1329 0.0580 ``` 对应的特征向量为: ``` 0.4774 0.5000 0.4506 0.3796 0.4233 0.4645 0.4662 -0.4930 -0.3152 -0.5676 -0.4152 0.6017 -0.4057 0.0529 -0.5408 0.4964 -0.1979 -0.5405 0.4201 -0.5046 -0.4179 0.3314 0.3045 0.7676 -0.2260 ``` 按照特征值从大到小的顺序,选取前3个特征值所对应的特征向量,组成3个主成分: ``` PC1 = 0.4774x1 + 0.5000x2 - 0.4506x3 + 0.3796x4 - 0.4233x5 PC2 = 0.4645x1 + 0.4662x2 + 0.4930x3 - 0.3152x4 + 0.5676x5 PC3 = -0.4152x1 + 0.6017x2 + 0.4057x3 + 0.0529x4 + 0.5408x5 ``` 代入每个观测值得到它们在3个主成分上的得分: ``` 观测值1: PC1 = -1.8799, PC2 = 0.6364, PC3 = -0.0083 观测值2: PC1 = -0.5768, PC2 = -1.0168, PC3 = 0.4472 观测值3: PC1 = 1.7256, PC2 = -0.2551, PC3 = 0.3358 观测值4: PC1 = 0.0910, PC2 = 1.0170, PC3 = -0.0985 观测值5: PC1 = 0.6394, PC2 = 0.6185, PC3 = -0.6312 观测值6: PC1 = 0.7789, PC2 = -0.3195, PC3 = 0.5326 观测值7: PC1 = -0.3987, PC2 = -0.1984, PC3 = -0.8395 观测值8: PC1 = -0.4437, PC2 = 0.9642, PC3 = -0.0225 观测值9: PC1 = 0.1433, PC2 = -0.6477, PC3 = -0.2618 观测值10: PC1 = -0.1351, PC2 = -0.5096, PC3 = 0.1172 ``` 这样我们就得到了每个观测值在三个主成分上的得分,可以用这些得分来描述数据的结构。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值