IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> NSDI11-Spectroscope-Diagnosing performance changes by comparing request flows -> 正文阅读

[人工智能]NSDI11-Spectroscope-Diagnosing performance changes by comparing request flows

  • 总结

    • 比较两次执行(系统修改前后)的请求流(时间、结构体)发现问题;对时间方面,使用假设检验,检查某种分类的时间分布是否和之前一致,从而判断是否一致。对于结构,寻找变异及其对应的前体,来发现性能改变

    • 设计的算法可以确定和排序请求流/时间中的改变

    • 工具 Spectroscope

    • 假设背景:我们的技术假设性能变化是由系统变化引起的(代码变化、配置变化等)。需要对比变化前后系统的执行来进行前体/编译的区分。

      • 可否应用于性能问题?[Q]
    • 定义两种突变情形

      • 响应时间突变
      • 结构体突变
    • 执行过程

      • 分组(聚类)
      • 区分突变和前体(KS和阈值)
      • 突变和前体关联
      • 排序
      • 定位low-level difference
    • 相比TPROF,

      • 都是聚类分组算法,聚类分组才能比较,

        • TPROF有多种聚合层次,多了一个subspan,剩下的就是时间和结构体
        • 本文分为时间和结构体
        • TPROF如何分类前体和突变[Q]
      • 本文提出了low-level参数

  • 1. Intro

    • 性能变化通常表现为请求服务的变化

      • 突变 - 问题期间新的请求流
      • 前体
    • 主要工作

      • 识别突变,根据贡献度排序,高亮最显著的分歧,定义最有可能导致问题的low-level参数
    • 突变分类

      • 响应时间突变:结构相同,响应时间不同
      • 结构突变:不同路径,需要找到其原请求流然后定位根因
  • 3. 行为改变和异常检测

    • 本文注重两个时间段进行比较
    • 异常检测(pinpoint)注重于找到一个集合中异常的部分
  • 4. Spectroscope

    • 4.1 分组

      • 按照结构分组(也就是字符串遍历,DFS)

      • 结构分组依据依据:

        • 类似的path会有相同的cost
        • 结构相同,字符串遍历相同
      • 对每个分类统计请求数、平均响应时间、方差,边缘延时及其方差

      • 聚类算法的优缺点

        • 聚类算法用来减少分出来类别的数量,减少开发者需要查看的类型。直接用的聚类会把突变前体(新版本中有两者)分到一起,掩盖了突变的存在
        • 无监督聚类算法 – Magpie
    • 4.2 比较请求流

      • 输入:有问题阶段和无问题阶段
        使用统计测试和启发式来识别哪些包含结构突变、响应时间的突变或前体。
      • 在这里插入图片描述
  • 5. 算法 - 比较请求流

    • 5.1 区分时间突变

      • KS假设检验 - 系统更改前后两个时间段,对于相同的结构,假设检验后时间段是否和前一个时间段相同
      • 非问题期和问题期作为输入;如果测试拒绝假设,则标记为包含响应时间突变
      • 为了识别导致突变的组件或者交互,spectropscope提取critical path-最长时间路径,在此path的edge上也运行假设检验
    • 5.2 区分结构突变

      • 系统在改变前后的请求数类似,则,一个请求数量(在错误阶段)的增加对应着别的请求的减少(采用别的边的请求)。一个分类的请求本身数量也会抖动,所以采用一个阈值。
      • 阈值 – Spectroscope假设在非问题期和问题期运行类似的工作负载。因此,可以合理地预期,在问题期间,通过分布式系统的一条路径的请求数量的增加,应该对应于通过其他路径的请求数量的减少
      • 问题期间的分类,相比非问题之间的分类,如果包含更多的SM_THRESHOLD请求,则标记为突变,包含更少SM_THRESHOLD标记为包含前体(相同请求?相同根节点?)
    • 5.3 前体和突变对应(只有结构突变才有这种对应)

      • 根节点一致

      • 数量限制

        • 剩余前体的请求数量减少 少于 结构突变请求数量增加(根节点一致为前提,且数量变化异常),就删除这个前体
        • 一个前体贡献若干变异,变异的请求数量增加少于前体请求数量减少,排除
      • 字符距离

    • 5.4 排序

      • 权重:突变时间差*数量
      • 如果有多个前体,则使用平均时间加权来排序
    • 5.5 寻找low-level difference

      • 识别突变前后的参数差异,来定位问题
    • 5.6 缺陷

      • 不适用于争用导致的问题
      • 对于不同的负载导致的变化,必须由开发人员确定是否是正常的(不用管)
  • 7. 处理高方差

    • 假设前提是相同时间对应相同路径,所以高方差不可。
  • 8.2 注意:比较一个东西加入前后的差异,得知道前后

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-28 11:50:53  更:2022-04-28 11:53:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:34:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码