一 了解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. delphi视频聊天

    用Delphi开发视频聊天软件 一.引言 我们知道视频聊天软件的关键技术在于采集视频,并实时传输给聊天软件在线的人.对于视频的采集,这里采用微软公司的关于数字视频的一个软件包VFW(Video for ...

  2. windows10怎样关闭,开机启动项中不需要的应用?

    1.点击"Window"键,输入"设置",双击''设置'',进入设置界面. 2.在设置界面中,点击"启动",然后就可以设置,关闭哪些是我们不 ...

  3. 九度OJ 1012:畅通工程 (最小生成树)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:7052 解决:3034 题目描述: 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅通工 ...

  4. 九度OJ 1007:奥运排序问题 (排序)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:7344 解决:1568 题目描述: 按要求,给国家进行排名. 输入: 有多组数据. 第一行给出国家数N,要求排名的国家数M,国家号从0到N- ...

  5. special points about git

    1 about "origin/master tracks the remote branch" 1.1 what does tracking mean? after " ...

  6. centos安装php5.6

    配置yum源 追加CentOS 6.5的epel及remi源. # rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/x86_64/epel- ...

  7. 各种 Spring-Boot-Starters系列 介绍

     分类: JavaWeb后端(6)      目录(?)[+]   原文传送门:Spring Boot application starters ↑传送门里有各Spring-Boot-Starters ...

  8. 解决使用mybatis做批量操作时发生的异常:Parameter '__frch_item_0' not found. Available parameters are [list] 记录

    本文主要描述 使用mybatis进行批量更新.批量插入 过程中遇到的异常及总结: 首先贴出使用批量操作报的异常信息: java.lang.RuntimeException: org.mybatis.s ...

  9. 简洁多用途SuperSlide插件—tab标签样式

    简洁多用途SuperSlide插件—tab标签切换代码样式,由huiyi8素材网提供. 源码:http://www.huiyi8.com/tab/

  10. IDEAL葵花宝典:java代码开发规范插件 lombok 插件

    前言: lombok简介: lombok是暑假来到公司实习的时候发现的一个非常好用的小工具,刚见到的时候就感觉非常惊艳,有一种相见恨晚的感觉,用了一段时间之后感觉的确挺不错,所以特此来推荐一下. 那么 ...