dpdk

DPDK-Suricata应用部署

孤人 提交于 2019-11-28 18:06:28
DPDK安装部署 1、 DPDK下载 下载dpdk-stable-18.02.2.tar.gz并解压,进入解压后dpdk目录下。 https://fast.dpdk.org/rel/dpdk-18.02.2.tar.xz 2、 设置环境变量 export RTE_SDK=$PWD,export RTE_TARGET=x86_64-native-linuxapp-gcc。 建议在/etc/profile中设置,设置完后执行source /etc/profile永久生效。 可执行echo $RTE_SDK进行验证。 3、 设置大叶内存: mkdir -p /mnt/huge mount -t hugetlbfs nodev /mnt/huge echo 1024 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages 4、 编译DPDK: make config T=x86_64-native-linuxapp-gcc make make install T=x86_64-native-linuxapp-gcc 5、 安装kernel module: modprobe uio insmod build/kmod/igb_uio.ko 6、 绑定网卡: 系统建议设置三块网卡,两个给DPDK使用。

浅谈Service Mesh体系中的Envoy

China☆狼群 提交于 2019-11-28 15:37:25
背景 最近因工作原因开始了解Service Mesh与Envoy,为系统性梳理所学内容,因此沉淀了此文档,但由于所知有限,如文档中有描述不当之处,希望不吝赐教。 提到Envoy就不得不提Service Mesh,说到Service Mesh就一定要谈及微服务了,那么我们就先放下Envoy,简单了解下微服务、Service Mesh以及Envoy在Service Mesh中处于一个什么样的角色。 过去几年间,架构领域最火的方向非微服务莫属,那么微服务架构到底为我们带来了什么样的好处呢?下面通过一张图说明架构的演进,如下: 伴随着业务规模的变大,微服务的好处显而易见,例如它本身所具备的可扩展性、易维护性、故障和资源隔离性等诸多特性使得产品的生产研发效率大大提高,同时,基于微服务架构设计,研发人员可以构建出原生对于“云”具备超高友好度的系统,让产品的持续集成与发布变得更为便捷。 然而没有所谓的银弹,微服务带来很多好处的同时也引入了很多问题。在云原生模型里,一个应用可以由数百个服务组成,每个服务可能有数千个实例,每个实例的状态可能持续的发生变化,此时,服务间的通信不仅异常复杂,而且都是运行时的行为,管理好服务间通信对于保证端到端的性能与可靠性来说无疑成为重中之重。在Service Mesh没有出现之前,微服务框架之间的通讯大多采用SDK方案,但该方式短板也非常明显,例如对业务有侵入性

Openvswitch原理与代码分析(2): ovs-vswitchd的启动

旧城冷巷雨未停 提交于 2019-11-28 07:21:51
ovs-vswitchd.c的main函数最终会进入一个while循环,在这个无限循环中,里面最重要的两个函数是bridge_run()和netdev_run()。 Openvswitch主要管理两种类型的设备,一个是创建的虚拟网桥,一个是连接到虚拟网桥上的设备。 其中bridge_run就是初始化数据库中已经创建的虚拟网桥。 一、虚拟网桥的初始化bridge_run bridge_run会调用bridge_run__,bridge_run__中最重要的是对于所有的网桥,都调用ofproto_run static void bridge_run__(void) { …… /* Let each bridge do the work that it needs to do. */ HMAP_FOR_EACH (br, node, &all_bridges) { ofproto_run(br->ofproto); } } Int ofproto_run(struct ofproto *p)会调用error = p->ofproto_class->run(p); ofproto_class的定义在ofproto-provider.h中,它的实现定义在ofproto-dpif.c中,这里面的所有的函数,在这个文件中都有定义。 const struct ofproto_class

VPP tips

别来无恙 提交于 2019-11-27 15:32:06
VPP tips 1. 性能从何而来。 原文链接: http://www.360doc.com/content/18/0428/20/53742993_749517107.shtml https://steeven.iteye.com/blog/2347150 DPDK代码级别性能优化总结 https://www.jianshu.com/p/346bf99b2fb1 https://www.jianshu.com/p/ed914b24f6da https://blog.csdn.net/Dgh19940/article/details/79603843 架构角度: DPDK 的巨页 、 NUMA 、 D-cache 优化, VPP 的 I-cache 优化 ; 算法角度: Bihash ,查表 lockless ; 代码角度: Vector 、 宏构造函数 、 结构体 cacheline 对齐 、 线程绑核 、指令预取、指令优化; 2. 路由查找 https://blog.csdn.net/dog250/article/details/6596046 Internet 路由之路由表查找算法概述 - 哈希 /LC-Trie 树 /256-way-mtrie 树 3. __constructor__ 修饰符 通过一个简单的例子介绍一下 gcc 的 __attribute__ (

dpvs部署

天涯浪子 提交于 2019-11-26 02:57:34
安装dpdk 官方URL https://github.com/iqiyi/dpvs dpdk-17.05.2可以兼容dpvs wget https://fast.dpdk.org/rel/dpdk-17.05.2.tar.xz tar vxf dpdk-17.05.2.tar.xz 下载dpvs git clone https://github.com/iqiyi/dpvs.git 给dpdk打补丁,加入kni驱动 cd <path-of-dpvs> cp patch/dpdk-stable-17.05.2/*.patch dpdk-stable-17.05.2/ cd dpdk-stable-17.05.2/ patch -p 1 < 0001-PATCH-kni-use-netlink-event-for-multicast-driver-par.patch 另一个补丁,uoa模块 patch -p1 < 0002-net-support-variable-IP-header-len-for-checksum-API.patch 编译dpdk并安装 cd dpdk-stable-17.05.2/ make config T=x86_64-native-linuxapp-gcc make export RTE_SDK=$PWD 启动hugepage 服务器是numa系统

DPDK官方文档列表(18.02)

醉酒当歌 提交于 2019-11-26 02:57:30
DPDK官方文档列表 DPDK提供了不同的支持文档供读者使用。下文提到的文档均是目前官方网站 http://dpdk.org/doc 提到的最新版本文档(当前时间2018年4月,版本18.02)。以下按网页版的文档 http://dpdk.org/doc/guides/ 中目录的顺序,对应下载的pdf文档,简要说明其内容,方便我们按需查找相应的文档。 1. 快速开始指南(getting started guide) 用于描述在不同的操作系统(freebsd和linux)上安装、配置DPDK软件;帮助用户启动和快速运行软件。 见 linux_gsg-18.02.pdf和freebsd_gsg-18.02.pdf。 2.示例应用程序用户指南(sample applications user guides) 见sample_app_ug-18.02.pdf 3. 编程指南(programmer's guide) 包括DPDK软件架构以及在linux环境下的使用方法;编译系统、移植说明及优化方法。 见prog_guide-18.02.pdf 4. howto指南(howto guides) 见howto-18.02.pdf。先列一列(因为现在有些术语还没看。fix me): Live Migration of VM with SR-IOV VF Live Migration of VM