一 了解dpdk准备知识

1 NAT

  NAT技术是为了缓解IPV4地址枯竭得问题,通过使用NAT技术,一个机构如学校可以只用单一得公网IP来范文互联网,在外界看来只有一台接入公网得设备。NAT分为两种技术,一种是NAT,一种是NAPT。NAT在网络地址转换得时候只是对IP地址进行映射,而NAPT技术对IP和端口进行了映射。NAT 在具体的应用场景中又分 NAT、DNAT 以及 FULLNAT。SNAT 是源地址转换,DNAT 是目的地址转换,FULLNA则对源地址和目的地址都进行了转换。NAT 是用来实现负载均衡的常见技术之一。

2 NUMA   

  NUMA即非统一内存访问架构。传统的SMP系统中,多处理器共享总线和存储。当处理器的数目越来越大的时候,多处理器对于存储的竞争容易使得总线成为系统的性能瓶颈,这样以来,NUMA出现了。

  NUMA将SMP分为多个节点,节点之间通过高速网络互连。每一个NUMA节点包含自己的CPU和本地内存,CPY既可以访问同一个节点的内存,也可以访问其他的内存。DPDK提供了对NUMA的支持。

3 HugePage

  在linux环境中,内存分配按照页为单位进行,通常的大小为4K。对于比较大的内存空间的分配,这种分配方式需要频繁的分配和管理。HP是对传统4K页的替代,通过它可以减少页表的大小,提高检索效率,从而提高系统性能。

4 绑核

  将线程或者进程与CPU核进行绑定,减少进程或者线程调度产生的开销。

二 负载均衡调度算法

  随着集群中服务器数目不断增多,机器性能差异对于系统的负载能力的影响越来越大。为了增强系统的稳定性,达到负载的目的,那就需要合适的调度算法来对请求进行分发。常见的有如下几种

(1) 轮询

  一般轮询:

    这种调度算法将请求均匀的分配到真实服务器中。要求各个服务器的配置得相同而且各个请求所消耗资源较为平均。

  进一步轮询:

    为集群中得服务器根据处理能力赋予权值,权值高得服务器相对处理更多的请求。

(2)源地址Hash

  根据源IP进行Hash计算,从hash表中选择一台真实服务器来处理请求。有个好处就是相同得IP会被映射到同一台服务器。缺点就是对于多人局域网共享同一个外网IP上网得方式,可能就存在大量得请求到同一台。

  x=hash(src_ip)mod N

(3)一致性Hash

  解决两个问题

    服务器处理能力得差异化

    真实服务器得增减会导致src_ip与处理请求得真实服务器之间得映射发生改变。

  这里推荐两篇文章,对一致性hash非常用心得讲解。

  http://www.zsythink.net/archives/1182

  https://www.cnblogs.com/lpfuture/p/5796398.html

  

三 DPDK基础

(1)EAL

  提供一种通用得接口,这种接口为应用和库在访问底层资源如硬件和内存得时候屏蔽了具体得环境细节。多线程为例,linux应用程序得EAL初始化如下图所使

(2)dpdk核心组件

  提供了一组涵盖开发高性能包处理工具所需要的全部要素的库,其中包括环形缓冲区管里,内存池管里,网络保温缓冲区管理,定时器管里,以太网轮询驱动架构,报文转发算法支持,网络协议库等,后面慢慢的再去学习各个模块的详细内容。核心组件如下图所示

就到这了,内容都是在学习dpdk的时候感觉需要所了解的内容。。。。

dpdk学习笔记2的更多相关文章

  1. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  2. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  3. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  4. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  5. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  6. seaJs学习笔记2 – seaJs组建库的使用

    原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...

  7. CSS学习笔记

    CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...

  8. HTML学习笔记

    HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...

  9. DirectX Graphics Infrastructure(DXGI):最佳范例 学习笔记

    今天要学习的这篇文章写的算是比较早的了,大概在DX11时代就写好了,当时龙书11版看得很潦草,并没有注意这篇文章,现在看12,觉得是跳不过去的一篇文章,地址如下: https://msdn.micro ...

随机推荐

  1. The goroutine scheduler is not preemptive.

    go - Why is time.sleep required to run certain goroutines? - Stack Overflow https://stackoverflow.co ...

  2. wepy error Parsing error: Unexpected token :

    mpBMCwepy\wepy.config.js eslint  信息 全局重装wepy-clinpm install wepy-cli -g -registry=https://registry.n ...

  3. [IR课程笔记]Web search

    一.  搜索引擎 组成部分: 1. 网络爬虫(web crawler) 2. 索引系统(indexing system) 3. 搜索系统 (searching system) consideratio ...

  4. vue应用示例

    1 . 实现轮播图 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset=&q ...

  5. 如何去掉ArrayList重复的id

    今天,也同样跟你一样寻找这个问题的解决办法, 如何去掉ArrayList重复的id 百度中找到这么一句话,为什么想到要去掉呢?为什么不反过来想,我在往ArrayList里添加的时候不让重复的项加入呢? ...

  6. HTML/CSS实现的搜索框

    谷歌和百度首页的搜索框都是<input>+<button>模式的,bing的搜索框感觉要好点儿.简言之,就是将提交按钮放到<input>中,其实这是做不到的,只能伪 ...

  7. 【转】PHP生成器 (generator)和协程的实现

    原文地址:https://phphub.org/topics/1430 1.一切从 Iterator 和 Generator 开始 为便于新入门开发者理解,本文一半篇幅是讲述迭代器接口(Iterato ...

  8. COM组件宏观认识

    一直搞不清楚COM到底是个什么东西,记录一些个人感想,可能很多错误的,慢慢消化. 一.宏观认识: 1.COM(组件对象模型)是一种标准,规则,要求,即即于建筑设计指标要求. 2.语言无关性,因为是建立 ...

  9. linux命令学习笔记(62)-curl命令-url下载工具

    linux curl是一个利用URL规则在命令行下工作的文件传输工具.它支持文件的上传和下载,所以是综合 传输工具,但按传统,习惯称url为下载工具. 一,curl命令参数,有好多我没有用过,也不知道 ...

  10. 机器学习 Regularization and model selection

    Regularization and model selection 假设我们为了一个学习问题尝试从几个模型中选择一个合适的模型.例如,我们可能用一个多项式回归模型hθ(x)=g(θ0+θ1x+θ2x ...