网络监控困难

  • 1、仅仅通过去增加特定的监控功能到交换机是不能满足运营商不断变化的需求的。(交换机需要支持网络性能问题的表达语言)
  • 2、他们缺乏对网络深处的性能问题进行本地化的可见性,间接推断网络问题的原因
  • 3、当前的交换机监控并没有提供相关的性能数据,没办法直观的查看性能统计信息来诊断问题

操作员使用 Marple

Marple 的功能结构

数据包性能流作为基础输入流的一部分,我们称之为pktstream。Marple为每个队列中的每个分组提供一个元组,并且具有以下字段(switch, qid, hdrs, uid, tin, tout, qsize)。switch和qid表示数据包被观察到的交换机和队列,常规的数据包头(以太网,IP,TCP等)在hdrs字段集合中可用,其中唯一确定一个数据包的uid,tin和tout表示数据包的入队和出队时间戳,qsize表示数据包入队时的队列深度。
pktstream中的元组按照包出队时间(tout)的顺序进行处理,如果丢包,tout和qsize是无穷大的。 对应于丢弃的分组的元组可以以任意顺序处理。

  • filter

construct:
  filter(R, pred) //R是包含性能元数据(例如,pktstream)的一些流,并且过滤器谓词pred可能涉及分组头,性能元数据。filter的结果是另一个只包含满足pred的元组的流。


example:
  result = filter(pktstream, qid == Q and switch == S and tout - tin > 1ms)

  • map

construct:
  map(R,[exprs],[fields]) //exprs表达式,写在元组流上的可用字段,产生新的字段fields


example:
  result = map(pktstream, [tin/epoch _ size], [epoch])
  

  • zip

construct:
  zip(R,S) //将R和S合并,输出既满足R又满足S的元组的流


example:
  result = zip(R1,R2)
 

  • groupby 

construct:
  groupby(R,[fields],fun) //根据不同的fields分别执行聚合函数fun


example:
   def new _ flow([fcount], []):
    if fcount == 0:
    fcount = 1
    emit()
   result = groupby(pktstream, [5tuple], new_flow) //groupby的输出是包含聚合字段(例如,5元组)和聚集值(例如count)的流。输出流仅包含执行聚合函数期间遇到的emit()语句的元组

Marple 的硬件设计

  • 一个可编程的键值存储:其中键表示流的标识,值表示由聚合函数计算的状态

线性可拓展聚合(TODO)

我们可以将任何聚合函数与S = A(p)·S + B(p)的状态更新合并,其中S是状态,A(p)和B(p)是最后k个数据包的函数。 我们称这个条件为线性状态条件,并且说A(p)和B(p)是有界包历史的函数。

查询编译(TODO)

相关资料

paper:http://nms.lcs.mit.edu/papers/marple.pdf
marple官网:http://web.mit.edu/marple
视频:https://www.youtube.com/watch?v=-mT4KXBFOfs&t=17s

Language-Directed Hardware Design for Network Performance Monitoring——Marple的更多相关文章

  1. Linux System and Performance Monitoring

    写在前面:本文是对OSCon09的<Linux System and Performance Monitoring>一文的学习笔记,主要内容是总结了其中的要点,以及加上了笔者自己的一些理解 ...

  2. ITU-T G.1081 IPTV性能监测点 (Performance monitoring points for IPTV)

    ITU-T 建议书 G.1081 IPTV性能监测点 Performance monitoring points for IPTV Summary Successful deployment of I ...

  3. PostgreSQL Performance Monitoring Tools

    PostgreSQL Performance Monitoring Tools https://github.com/CloudServer/postgresql-perf-tools This pa ...

  4. Orion Network Performance Monitor 软件在网络管理中的应用

    Orion Network Performance Monitor 软件在网络管理中的应用       Orion Network Performance Monitor是完全的带宽性能和故障管理软件 ...

  5. After 2 years, I have finally solved my "Slow Hyper-V Guest Network Performance" issue. I am ecstatic.

    Edit - It should be known that I was initially researching this issue back in 2012 and the solution ...

  6. the way of hardware design study

    1.器件 主要分类 1.MCU2.DSP3.FPGA4.Embedded5.System on Chip MCU MCU俗称单片机,通常无操作系统,用于简单的控制,如电梯,空调等. DSP DSP叫做 ...

  7. Top 10 Free Wireless Network hacking/monitoring tools for ethical hackers and businesses

    There are lots of free tools available online to get easy access to the WiFi networks intended to he ...

  8. always NetWork Performance measure Tools

    1,iperf key feature:Measuring TCP and UDP BandWidth Performance Iperf features; *TCP .Measure bandwi ...

  9. Systemtap examples, Network - 4 Monitoring TCP Packets

    http://blog.163.com/digoal@126/blog/static/16387704020131014104256627/   例子来自tcpdumplike.stp脚本, 当tcp ...

随机推荐

  1. sql中根据逗号分隔,查出多行数据

    --sql中根据逗号分隔,查出多行数据 select       a.DiscussID,b.LocationID  from       (select DiscussID,LocationID=c ...

  2. MFC数据库操作

    本例采用Microsoft SQL2008建立的一个数据库表 /****链接数据库操作**/ 在stdafx.h的头文件中加入 #import "C:\Program Files\Commo ...

  3. iOS--支付宝环境集成

    1.下载支付宝SDK以及Demo https://doc.open.alipay.com/doc2/detail?treeId=54&articleId=103419&docType= ...

  4. java自学-基本数据类型

     java中也有对数据的运算处理,java中数据分为常量和变量,常量就是直接固定不变的数据,变量是数据可能发生改变的数据,如下: int a=0; a=1+1; 上边代码,a就是变量,初始为0,接下来 ...

  5. HashMap概述及其三种遍历方式

    一.HashMap概述: 1.HashMap是一个散列表,它存储的是键值对(key-value)映射: 2.HashMap继承AbstractMap,实现了Map,Cloneable,Serializ ...

  6. properties配置文件编码问题

    properties配置文件编码问题 person.last-name=哈哈 person.age=18 person.bitrh=2019/01/12 person.boss=false perso ...

  7. 【学习笔记】--- 老男孩学Python,day8 知识点补充 join,列表不能循环删除,深浅copy

    1. 补充基础数据类型的相关知识点 1. str. join() 把列表变成字符串 2. 列表不能再循环的时候删除. 因为索引会跟着改变 3. 字典也不能直接循环删除. 把要删除的内容记录在列表中. ...

  8. javascript中让你捉摸不定的this

    this到底指向谁,估计很多人在使用javascript的过程中都遇到过,这个关键字如果没搞懂,在一些高级功能中都会困难重重,搜了下相关文章,介绍的都挺多的,也有很深入的,比如汤姆大叔的<深入理 ...

  9. 【小程序】返回顶部wx.pageScrollTo和scroll-view的对比

    一.wx.pageScrollTo(https://mp.weixin.qq.com/debug/wxadoc/dev/api/scroll.html) 1. 小程序中双击顶部的textbar.会默认 ...

  10. Keras vs. PyTorch in Transfer Learning

    We perform image classification, one of the computer vision tasks deep learning shines at. As traini ...