网络监控困难

  • 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. 如何找出长时间未提交的事务session ID

    收到报警某台mysql数据库慢查询数量超过5,登录上去看,发现阻塞的SQL全部是update,处于Updating状态 +---------+------+-----------+------+--- ...

  2. Java : 传值or传引用?

    那看看这句经典名言:O'Reilly's Java in a Nutshell by David Flanagan (see Resources) puts it best: "Java m ...

  3. c#基础学习(0806)之StringBuilder的使用

    以前字符串的拼接基本都是用string来完成的,从来没有考虑过性能或者速度的问题,自从学习了StringBuilder之后才发现两者的差距有多大,当然,数据量比较小的时候,用string还是挺方便的, ...

  4. Jquery Easy UI初步学习(三)数据增删改

    第二篇只是学了加载用datagrid加载数据,数据的增删改还没有做,今天主要是解决这个问题了. 在做增删改前需要弹出对应窗口,这就需要了解一下EasyUi的弹窗控件. 摘自:http://philoo ...

  5. IDEA 中edit configurations加号找不到tomcat server

    前言:在本机 idea 中搭建 springMVC 项目,正准备配置 Tomcat 时,发现没有 tomcat server 选项,而我的 idea 是有这个插件的,所以解决问题的方案应该是另一个地方 ...

  6. spring-boot集成PageHelper和通用Mapper

    前提条件:已经集成mybatis 代码生成步骤: 添加依赖 <dependency> <groupId>tk.mybatis</groupId> <artif ...

  7. LOJ #2985. 「WC2019」I 君的商店

    传送门 搬题解QwQ 首先最大值一定为 \(1\),直接扫一遍两两比较 \(O(2N)\) 求出最大值 设最大值位置为 \(a\),对于任意两个没有确定的位置 \(x,y\) 询问 \([a,x+y] ...

  8. 自己编写jQuery插件 之 无缝滚动

    一. 效果图 二. Html骨架结构 <div class="box"> <ul> <li>1</li> <li>2&l ...

  9. python之函数的参数

    1.位置参数: 例如计算一个整数的平方: def power(x) return x * x 显然参数x就是一个位置参数,如果要是计算5*5*5..............*5 ,这个函数就太麻烦了, ...

  10. MapReduce:Shuffle过程详解

    1.Map任务处理 1.1 读取HDFS中的文件.每一行解析成一个<k,v>.每一个键值对调用一次map函数.                <0,hello you>   & ...