云端卫士的新栏目《实战录》将会定期分享一些我们的工程师伙伴们在产品研发的过程中总结的实践经验,希望对于热爱技术且关注安全领域的受众有所裨益。本期分享人为云端卫士安全运营工程师陶涛。
技术背景随着互联网飞速发展,基础网络技术也面临多需求和挑战:·网络服务运营商在业务拓展等问题上,提出NFV(网络功能虚拟化)方案。·互联网数据中心需求更高级的网络处理能力,提出了SDN(软件定义网络)方案。
在这两股强大需求的推动下,开源的DPDK(DATA PLANE DEVELOPMENT KIT)目前显得比较热门,被普遍采用作为硬件抽象的解决方案。功能简介传统操作系统,一个报文的收发,都需要有内核协调。内核身兼多职,每次都找内核协调,性能不好,发挥不出网卡的实力。
DPDK是一套开发工具,提供应用程序直接处理报文的方法,跳过内核协调部分,性能大大提高。技术构成上图看似简单,实际涉及的技术非常多,单拉出任一点讨论都可能打不住,所以这里单说下其使用了哪些技术。用户态驱动想跳过内核玩硬件,得跟内核打好招呼。目前内核提供了UIO驱动和VFIO驱动来支持。个人认为,二者的区别在于,UIO把硬件设备映射给用户态后,内核不会在参与其调度,完全交给用户自定义使用。
VFIO则在映射后,内核仍旧会为其提供部分规范方法的支持(如中断,iommu等)。大页内存利用大页内存,提高页表命中率。其另一个优点,则是内存资源隔离,大页内存是不会参与系统swap等调度的。CPU亲和性将某个进程/线程绑定到特定的cpu上运行。可以降低被系统调度时,上下文切换的性能损耗。
抛开性能优化,也是资源分配等优化的前提条件。CAS原子操作DPDK利用原子操作规避线程锁,实现了多消费者,多生产者模式的环形队列。在多进程/线程模式下,DPDK的应用程序有不俗的表现。
技术特点回头一看,DPDK用的技术并不是独有的,但合并在一起,构成了它独有的技术特点。驱动可靠操作物理硬件,可不同于软件,开发失误很有可能造成硬件不可用,甚至损坏。DPDK是intel旗下的,适配自己的网卡,只能说是没有比这更可靠的驱动来源了。
资源隔离DPDK提供了eal(环境抽象)层,利用上面提到的技术,将eal大部分资源(cpu、内存、计时器等),与其他程序(甚至内核)隔离。
为基于DPDK的程序稳定性得到保障。开源,文档全作为开源项目非常适合研究学习,难得的是文档和用例也非常全,学习和使用的成本进一步降低。由于篇幅有限,简单介绍了DPDK所使用到的关键技术,和其作为开发工具的技术特点。以后有机会将结合业务,逐个介绍DPDK的功能模块。

实战录 | 云端卫士之DPDK技术简介相关推荐

  1. 《AR与VR开发实战》——第1章AR技术简介

    本节书摘来自华章出版社<AR与VR开发实战>一书中的第1章,第1.1节,作者 张克发 赵兴 谢有龙,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第1章 AR ...

  2. 云端卫士实战录 | OFTest 的安装和使用

    <实战录>导语 云端卫士<实战录>栏目定期会向粉丝朋友们分享一些在开发运维中的经验和技巧,2017年我们将一如既往地为朋友们奉献更多优质内容.本期分享人为云端卫士工程师欧文玉美 ...

  3. 《自然语言处理实战入门》 ---- 第4课 :中文分词原理及相关组件简介 之 语言学与分词技术简介...

    <自然语言处理实战入门> ---- 第4课 :中文分词原理及相关组件简介 之 语言学与分词技术简介 https://edu.csdn.net/course/play/20769/25954 ...

  4. 《自然语言处理实战入门》 第三章 :中文分词原理及相关组件简介 ---- 语言学与分词技术简介

    文章大纲 0.内容梗概 1. 汉语语言学简介 1.1 汉语与汉字的起源 1.2 汉字的统一与演变 1.3 印欧语系与汉藏语系 1.4 语言区别对于NLP 的影响 2. 词汇与分词技术简介 2.1 汉语 ...

  5. 实战录 | 浅谈前端项目构建与优化

    <实战录>导语 云端卫士的新栏目<实战录>将会定期分享一些我们的工程师伙伴们在产品研发的过程中总结的实践经验,希望对于热爱技术且关注安全领域的受众有所裨益.本期分享人为云端卫士 ...

  6. 实战录 | 基于openflow协议的抓包分析

    <实战录>导语 云端卫士<实战录>栏目定期会向粉丝朋友们分享一些在开发运维中的经验和技巧,希望对于关注我们的朋友有所裨益.本期分享人为云端卫士安全SDN工程师宋飞虎,将带来基于 ...

  7. 云端卫士架构师讲DDoS攻击的智能防御之道

    DDoS即分布式拒绝服务攻击,这是一场关乎资源的较量,攻击者通过自己控制的大量僵尸主机,向目标设施(服务器.运营商网络和基础架构等)发起洪水猛兽般的流量型攻击,或是连绵不绝的应用型攻击. 如果将受害者 ...

  8. AI之NLP:自然语言处理技术简介(是什么/学什么/怎么用)、常用算法、经典案例之详细攻略(建议收藏)

    AI之NLP:自然语言处理技术简介(是什么/学什么/怎么用).常用算法.经典案例之详细攻略(建议收藏) 目录 NLP是什么? 1.NLP前置技术解析 2.python中NLP技术相关库 3.NLP案例 ...

  9. AI之NLP:自然语言处理技术简介(是什么/学什么/怎么用)、常用算法、经典案例之详细攻略(建议收藏)daiding

    AI之NLP:自然语言处理技术简介(是什么/学什么/怎么用).常用算法.经典案例之详细攻略(建议收藏) 目录 NLP是什么? 1.NLP前置技术解析 2.python中NLP技术相关库 3.NLP案例 ...

  10. 341.基于高通量测序的微生物组研究技术简介

    基于高通量测序的微生物组研究技术简介 --微生物组研究,从方案设计到写作套路(一) 作者:王晓雯 凌波微课 版本1.0.2,更新日期:2020年9月22日 微生物组研究的热潮愈演愈烈,已经深入到我们生 ...

最新文章

  1. Spring Boot 3.0 M1 发布,正式弃用 Java 8,最低要求 Java 17。。。
  2. Android 进程保活招式大全
  3. VS2010+WinXP+MFC程序 无法定位程序输入点于动态链接库
  4. javascript --- 混入
  5. 机器人网首页应用实例工业自动化 EtherCAT 技术在库卡机器人控制系统上的应用
  6. Bash常用快捷键及其作用
  7. 理解一下策略模式,工厂模式
  8. thinkphp 字段静态验证$_validate中错误提醒多语言化写成{%LANGUATE}的原因
  9. Unity基础知识学习四,UI框架设计
  10. Qt+opencv二值化
  11. QT 打开选择文件对话框
  12. 16种常用的数据分析方法-相关分析
  13. PIPIOJ 1169: PIPI倒水
  14. Python学习笔记——eofs.standard的使用
  15. 前端实现对ZIP 压缩文件解压,实现前端直接展示结果,比如图片,压缩包等 audio对象进行播放
  16. Dolby fMP4视频seek后卡顿问题分析
  17. 【转】Java 多线程学习
  18. 新浪与Google(谷歌)结成战略合作伙伴关系
  19. C语言预处理命令(预处理指令)
  20. 【Python学习教程】数据结构与算法

热门文章

  1. linux 755是什么意思
  2. Python 中拼音库 PyPinyin 的使用
  3. ofo的智能锁初代方案:声波频率识别开锁
  4. 文献综述是什么,该怎么写?
  5. 【论文笔记--FORCE】Progressive Skeletonization: Trimming more fat from a networkat initialization
  6. 图片文字怎么合并转发_微信怎么转发别人的图片带文字
  7. YOLO-Pose: Enhancing YOLO for Multi Person Pose Estimation Using Object Keypoint Similarity Loss 笔记
  8. QNX Hypervisor —— 物理设备
  9. Android系统10 RK3399 init进程启动(十七) Verbose日志级别打开方式
  10. 默写人体的方法有哪些?如何默写好画人体?