SlideShare uma empresa Scribd logo
1 de 35
Baixar para ler offline
DPDK in
Containers
Hands-on Lab
Clayne Robison, Intel Corporation
Agenda
•  Executive Summary
•  DPDK and Containers Intro
•  Hands-on Lab
•  Conclusion
2
Summary
•  Linux* containers use fewer system resources
•  More micro-services per host
•  No VM overhead
•  Containers still use kernel network stack
•  Not ideal for SDN/NFV usages
•  DPDK (and Open vSwitch*) can be used in
Containers
•  Elevated privileges required today
3
Agenda
•  Executive Summary
•  DPDK and Containers Intro
•  Hands-on Lab
•  Conclusion
4
Containers vs. VMs
5
0
20,000,000
40,000,000
60,000,000
80,000,000
100,000,000
120,000,000
140,000,000
160,000,000
64 128 192 256 320 384 448 512 576 640 704 768 832 896 960 1024 1088 1152 1216 1280 1344 1408 1472
Packet Size
10GbE Packets/sec
40GbE Packets/sec
100GbE Packets/sec
6
The DPDK Problem Statement
Packet Size 64 Bytes
40G packets/second 59.5 million each way
Packet arrival interval 16.8 ns
2 GHz clock cycles/packet 33 cycles
Packet Size 1024 Bytes
40G packets/second 4.8 million each way
Packet arrival interval 208.8 ns
2 GHz clock cycles/packet 417 cycles
From a CPU perspective:
•  Last-level-cache (L3) hit ~40 cycles
•  L3 miss, memory read is ~70ns (140 cycles at 2GHz)
•  Harder to address at 100Gb rates
Typical Network Infrastructure Packet Size Typical Server Packet Size
Assumptions
7
Assumptions
8
rkt
kubernetes
lxc
Agenda
•  Executive Summary
•  DPDK and Containers Intro
•  Hands-on Lab
•  Conclusion
9
Compute Node
Host-VM
Host OS
Container-pktgen
DPDK
Open vSwitch*
Container-testpmd
DPDK
vhostuser0 vhostuser3vhostuser2vhostuser1
pktgen testpmd
Flow
Flow
System Layout
DPDK DPDKDPDKDPDK
Enter Lab Environment
SSH from your laptop1 in to Cluster Jump Server2
•  IP Address: 207.108.8.161
•  SSH v2 preferred
•  Username: student<1-50> ($ ssh student9@207.108.8.161)
•  Password: same as username (e.g. student9)
•  Repeat so that you have multiple connections to the Jump Server2
SSH from Cluster Jump Server2 in to assigned HostVM3
•  $ ssh user@HostVM-____
•  Username: user; Password: password
•  Enter lab environment
•  $ cd ~/training/dpdk-container-lab
•  $ sudo su
•  # source setenv.sh
11
Note: You need 3 ssh
sessions into the jump
server/HostVM
3. HostVM
2.
Cluster
Jump
Server
1. Your
Laptop
RememberTRAINING_DIR =/home/user/training/dpdk-container-lab
Lab Slide Key
12
# cd $DPDK_DIR
(build the x86_64-native-linuxapp-gcc flavor of DPDK and
put it in the x86_64-native-linuxapp-gcc dir)
# make config T=$DPDK_BUILD O=$DPDK_BUILD
# cd $DPDK_BUILD
# make -j
Manual	Entry	Box:		
Type	this	code	on	the	
command	line,	line	by	line	
# Short cuts TRAINING_DIR/
00_build_dpdk.sh
Bash	Script	Call-out:		
The	file	in	this	callout	contains	the	same	
code	as	in	the	Manual	Entry	Box.	Copy/
Paste	line	by	line	onto	the	command	line,	
or	simply	run	the	en>re	script.
Build DPDK 16.11
13
# cd $DPDK_DIR
(build the x86_64-native-linuxapp-gcc flavor of DPDK
and put it in the x86_64-native-linuxapp-gcc dir)
# make config T=$DPDK_BUILD O=$DPDK_BUILD
# cd $DPDK_BUILD
# make Or	
# cd $TRAINING_DIR
# ./00_build_dpdk.sh
Build Open vSwitch* 2.6.1
14
# cd $OVS_DIR
(run the autoconf magic)
# ./boot.sh
(build OVS with DPDK support)
# CFLAGS='-march=native' ./configure 
--with-dpdk=$DPDK_DIR/$DPDK_BUILD
# make
Or	
# cd $TRAINING_DIR
# ./01_build_ovs.sh
Prepare to Start Open vSwitch*
15
(create openvswitch directories)
# mkdir -p /usr/local/etc/openvswitch
# mkdir -p /usr/local/var/run/openvswitch
(mount the hugepage tlbfs)
# mount -t hugetlbfs -o pagesize=1G none /mnt/huge
(show the fs table)
# mount | grep -i “/mnt/huge”
(insert the user-space IO driver into the kernel)
# modprobe uio
# insmod $DPDK_DIR/$DPDK_BUILD/kmod/igb_uio.ko
Or	
# cd $TRAINING_DIR
# ./02_prep_ovs.sh
Start Open vSwitch*
16
# cd $OVS_DIR
(initialize new OVS database)
# ./ovsdb/ovsdb-tool create /usr/local/etc/openvswitch/conf.db  ./
vswitchd/vswitch.ovsschema
(start database server)
# ./ovsdb/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock 
--remote=db:Open_vSwitch,Open_vSwitch,manager_options 
--pidfile –detach
(initialize OVS database)
# ./utilities/ovs-vsctl --no-wait init
(configure OVS DPDK using 1GB and the ovswitchd thread on logical core 1)
# ./utilities/ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true 
other_config:dpdk-lcore-mask=0x2 other_config:dpdk-socket-mem="1024”
(start OVS)
# ./vswitchd/ovs-vswitchd unix:/usr/local/var/run/openvswitch/db.sock 
--pidfile --detach
Or	
# cd $TRAINING_DIR
# ./03_start_ovs.sh
Create the Open vSwitch* Bridge and
Ports
17
$ cd $OVS_DIR
(Tell OVS to use Core 2 for the PMD)
# ./utilities/ovs-vsctl set Open_vSwitch . other_config:pmd-cpu-mask=0x4
(Create bridge br0 and vhost ports that use DPDK)
# ./utilities/ovs-vsctl add-br br0 -- set bridge br0 datapath_type=netdev
# ./utilities/ovs-vsctl add-port br0 vhost-user0 
-- set Interface vhost-user0 type=dpdkvhostuser
# ./utilities/ovs-vsctl add-port br0 vhost-user1 
-- set Interface vhost-user1 type=dpdkvhostuser
# ./utilities/ovs-vsctl add-port br0 vhost-user2 
-- set Interface vhost-user2 type=dpdkvhostuser
# ./utilities/ovs-vsctl add-port br0 vhost-user3 
-- set Interface vhost-user3 type=dpdkvhostuser
(Show br0 info)
# ./utilities/ovs-vsctl show
Or	
# cd $TRAINING_DIR
# ./04_createports.sh
Note	port	names.	You’ll	
see	them	in	a	moment
Add Routes/Flows to Open vSwitch*
18
(Clear clear current flows)
#./utilities/ovs-ofctl del-flows br0
(Add bi-directional flow between port 2 and 3 -- vhost-user1 and vhost-user2)
# ./utilities/ovs-ofctl add-flow br0 
in_port=2,dl_type=0x800,idle_timeout=0,action=output:3
# ./utilities/ovs-ofctl add-flow br0 
in_port=3,dl_type=0x800,idle_timeout=0,action=output:2
(Add bi-directional flow between port 1 and 4 -- vhost-user0 and vhost-user3)
# ./utilities/ovs-ofctl add-flow br0 
in_port=1,dl_type=0x800,idle_timeout=0,action=output:4
# ./utilities/ovs-ofctl add-flow br0 
in_port=4,dl_type=0x800,idle_timeout=0,action=output:1
(Show the current flow configuration)
# ./utilities/ovs-ofctl show br0
Or	
# cd $TRAINING_DIR
# ./05_addroutes.sh
Note	the	mapping	between	
Open	vSwitch	and	OpenFlow	
ports.
Create testpmd Docker* Container
(Already Done)
19
$ cat $TRAINING_DIR/docker-build/testpmd/Dockerfile
FROM ubuntu
COPY ./dpdk-container-lab /root/dpdk-container-lab
WORKDIR /root/dpdk-container-lab
COPY ./dpdk /usr/src/dpdk
RUN apt-get update && apt-get install -y build-essential automake python-pip 
libcap-ng-dev gawk pciutils linux-headers-$(uname -a | awk '{print $3}') 
vim kmod
RUN pip install -U pip six
ENV DPDK_DIR "/usr/src/dpdk”
ENV DPDK_BUILD "x86_64-native-linuxapp-gcc”
ENV RTE_SDK "/usr/src/dpdk”
ENV RTE_TARGET "x86_64-native-linuxapp-gcc”
ENV TRAINING_DIR /root/dpdk-container-lab
RUN ./build_dpdk.sh
RUN ./build_testpmd.sh
CMD ["/bin/bash"]
Create testpmd Docker* Container (Con’t)
(Already Done--DO NOT RUN in Lab)
20
$ cat $TRAINING_DIR//build_testpmd_container.sh
#!/bin/bash
DOCKER_BUILD_DIR="$(pwd)/docker-build/testpmd”
DOCKER_TAG="ses2017/testpmd1”
cd $DOCKER_BUILD_DIR
docker build . -t $DOCKER_TAG
Create pktgen Docker* Container
(Already Done)
21
$ cat $TRAINING_DIR/docker-build/pktgen/Dockerfile
FROM ses2017/testpmd
COPY ./dpdk-container-lab /root/dpdk-container-lab
WORKDIR /root/dpdk-container-lab
COPY ./dpdk /usr/src/dpdk
COPY ./pktgen /usr/src/pktgen
RUN apt-get update && apt-get install -y build-essential automake python-pip 
libcap-ng-dev gawk pciutils linux-headers-$(uname -a | awk '{print $3}') 
vim kmod libpcap-dev
RUN pip install -U pip six
ENV DPDK_DIR "/usr/src/dpdk”
ENV DPDK_BUILD "x86_64-native-linuxapp-gcc”
ENV RTE_SDK "/usr/src/dpdk”
ENV RTE_TARGET "x86_64-native-linuxapp-gcc”
ENV PKTGEN_DIR "/usr/src/pktgen”
ENV TRAINING_DIR /root/dpdk-container-lab
RUN ./build_dpdk.sh
RUN ./build_pktgen.sh
CMD ["/bin/bash"]
Create pktgen Docker* Container (Con’t)
(Already Done--DO NOT RUN in Lab)
22
$ cat $TRAINING_DIR/build_pktgen_container.sh
#!/bin/bash
DOCKER_BUILD_DIR="$(pwd)/docker-build/pktgen”
DOCKER_TAG="ses2017/pktgen1”
cd $DOCKER_BUILD_DIR
docker build . -t $DOCKER_TAG
Run testpmd Docker* Container
23
# export DOCKER_TAG="ses2017/testpmd1”
(Launch docker container in privileged mode with access to host hugepages and
OVS DPDK sockets)
# docker run -ti --privileged 
-v /mnt/huge:/mnt/huge 
-v /usr/local/var/run/openvswitch:/var/run/openvswitch 
$DOCKER_TAG
Or	
# cd $TRAINING_DIR
# 06_start_testpmd_container.sh
Run pktgen Docker* Container
24
# export DOCKER_TAG="ses2017/pktgen1”
(Launch docker container in privileged mode with access to host hugepages and
OVS DPDK sockets)
# docker run -ti --privileged 
-v /mnt/huge:/mnt/huge 
-v /usr/local/var/run/openvswitch:/var/run/openvswitch 
$DOCKER_TAG
Or	
# cd $TRAINING_DIR
# 07_start_pktgen_container.sh
testpmd Container: Set dpdk parameters
25
/******
* -c 0xE0: DPDK can run on core 5-7: (0b1110 0000)
* --master-lcore 5: master testpmd thread runs on core 5 (0b00100000)
* -n 1: we only have one memory bank in this VM
* --socket-mem 1024: use 1GB per socket
* --file-prefix testpmd: name appended to hugepage files from this process
* --no-pci don't look for any PCI devices
* --vdev=net_virtio_user2,mac=00:00:00:00:00:02,path=/var/run/openvswitch/vhost-user2
* --vdev=net_virtio_user3,mac=00:00:00:00:00:03,path=/var/run/openvswitch/vhost-user3
* use a virtual device using the net_virtio_user driver, MAC address shown
* and the path to the unix socket is /var/run/openvswitch/vhost-userX
*****/
# export DPDK_PARAMS="-c 0xE0 --master-lcore 5 -n 1 --socket-mem 1024 --file-prefix
testpmd --no-pci 
--vdev=net_virtio_user2,mac=00:00:00:00:00:02,path=/var/run/openvswitch/vhost-user2 
--vdev=net_virtio_user3,mac=00:00:00:00:00:03,path=/var/run/openvswitch/vhost-user3"
Or	
# cd $TRAINING_DIR
# ./run_testpmd.sh
testpmd Container: Set testpmd
Parameters & Run testpmd
26
/*******
* -i -- interactive mode
* --burst=64: we are going to fetch 64 packets at at time
* -txd=2048/--rxd=2048: we want 2048 descriptors in the rx and tx rings
* --forward-mode=io: forward all packets received
* --auto-start: start forwarding packets immediately on launch
*--disable-hw-vlan: disable hardware VLAN
* --coremask=0xC0: lock tespmd to run on cores 6-7 (0b1100 0000)
*****/
# export TESTPMD_PARAMS="--burst=64 -i --disable-hw-vlan --txd=2048 
--rxd=2048 --forward-mode=io --auto-start --coremask=0xC0”
(Use the DPDK_DIR, DPDK_PARAMS and TESPMD_PARAMS in the environment)
# $DPDK_DIR/app/test-pmd/testpmd $DPDK_PARAMS -- $TESTPMD_PARAMS
Or	
# cd $TRAINING_DIR
# ./run_testpmd.sh
pktgen Container: Set dpdk parameters
27
/*****
* -c 0x19: DPDK can run on core 0,3-4: (0b0001 1001)
* --master-lcore 3: make the pktgen dpdk thread run on core 3 (0b1000)
* -n 1: we only have one memory bank in this VM
* --socket-mem 1024: use 1GB per socket
* --file-prefix pktgen: name appended to hugepage files from this process
* --no-pci don't look for any PCI devices
* --vdev=net_virtio_user0,mac=00:00:00:00:00:00,path=/var/run/openvswitch/vhost-user0
* --vdev=net_virtio_user1,mac=00:00:00:00:00:01,path=/var/run/openvswitch/vhost-user1
* use a virtual device using the net_virtio_user driver, MAC address shown
* and the path to the unix socket is /var/run/openvswitch/vhost-userX
*****/
# export DPDK_PARAMS="-c 0x19 --master-lcore 3 -n 1 --socket-mem 1024 
--file-prefix pktgen --no-pci 
--vdev=net_virtio_user0,mac=00:00:00:00:00:00,path=/var/run/openvswitch/vhost-user0 
--vdev=net_virtio_user1,mac=00:00:00:00:00:01,path=/var/run/openvswitch/vhost-user1”
Or	
# cd $TRAINING_DIR
# ./run_pktgen.sh
pktgen Container: Set pktgen
Parameters & Run pktgen
28
/*******
* -P: Promiscuous mode
* -T: Color terminal output
* -m "0.0,4.1" (core.port): core 0: port 0 rx/tx; core 4: port 1 rx/tx
*****/
export PKTGEN_PARAMS='-T -P -m ”0.0,4.1"'
(Use the PKTGEN_DIR, DPDK_DIR, DPDK_PARAMS and PKTGEN_PARAMS in the environ)
# cd $PKTGEN_DIR
# ./app/app/$DPDK_BUILD/pktgen $DPDK_PARAMS -- $PKTGEN_PARAMS
Or	
# cd $TRAINING_DIR
# ./run_pktgen.sh
Useful testpmd and pktgen Commands
29
(Useful commands to use in testpmd)
testpmd> show port stats all
testpmd> clear port stats all
testpmd> help
(Useful commands to use in pktgen)
Pktgen> set 0 count 1000000
Pktgen> set 1 count 1000000
Pktgen> start 0
Pktgen> start all
Pktgen> set 0 rate 10
Pktgen> clr
Pktgen> rst
Pktgen> pdump 0
Pktgen> help
Viewing CPU Resources on the Host
30
Applica8on	 Parameter	 Thread	 Core	Mask	(CPUs	0-7)	
Open	vSwitch*	 	dpdk-lcore-mask=0x2	 daemon	 0b0000	0010	
pmd-cpu-mask=0x4	 DPDK	PMD	 0b0000	0100	
pktgen	()		 -c	0x19	 GUI	&	Messages	 0b0000	1000	
--master-lcore	3	 DPDK	master	lcore	 0b0000	1000	
-m	“0.0,4.1”	 DPDK	PMD	 0b0001	0001	
testpmd	 --coremask=0xC0	 DPDK	master	lcore	 0b0010	0000	
-c	0xE0	 testpmd	DPDK	PMD	 0b1100	0000
Agenda
•  Executive Summary
•  DPDK and Containers Intro
•  Hands-on Lab
•  Conclusion
31
Questions
•  What kind of performance are you seeing?
•  What should you see with 10GB connection?
•  Why is performance so poor?
•  Why do ISVs/Telcos/CommSPs care about containers?
•  What problems do you see with the DPDK in container
setup shown today? How would you solve them?
32
Conclusion
•  Container networks can use DPDK
•  Security issues?
•  Performance still highly dependent on
configuration
•  Intel® Clear Containers may provide more
ideal solution
33
References
•  http://www.linuxquestions.org/questions/linux-newbie-8/how-to-use-dpdk-inside-
linux-containers-4175537584/
•  https://builders.intel.com/docs/container-and-kvm-virtualization-for-nfv.PDF
•  http://www.intel.com/content/dam/www/public/us/en/documents/white-papers/
linux-containers-hypervisor-based-vms-paper.pdf
•  http://events.linuxfoundation.org/sites/events/files/slides/
Jun_Nakajima_NFV_Container_final.pdf
• 
http://developerblog.redhat.com/2015/06/02/can-you-run-intels-data-plane-
development-kit-dpdk-in-adocker-container-yep/
•  http://dpdk.org/ml/archives/dev/2016-January/031219.html
•  https://dpdksummit.com/Archive/pdf/2016USA/Day02-Session02-Steve
%20Liang-DPDKUSASummit2016.pdf
34
Legal Notices and Disclaimers
Intel technologies’ features and benefits depend on system configuration and may require enabled
hardware, software or service activation. Learn more at intel.com, or from the OEM or retailer.
No computer system can be absolutely secure.
Tests document performance of components on a particular test, in specific systems. Differences in
hardware, software, or configuration will affect actual performance. Consult other sources of
information to evaluate performance as you consider your purchase. For more complete information
about performance and benchmark results, visit http://www.intel.com/performance.
Intel, the Intel logo and others are trademarks of Intel Corporation in the U.S. and/or other countries.
*Other names and brands may be claimed as the property of others.
© 2017 Intel Corporation.

Mais conteúdo relacionado

Mais procurados

BPF Internals (eBPF)
BPF Internals (eBPF)BPF Internals (eBPF)
BPF Internals (eBPF)Brendan Gregg
 
DPDK: Multi Architecture High Performance Packet Processing
DPDK: Multi Architecture High Performance Packet ProcessingDPDK: Multi Architecture High Performance Packet Processing
DPDK: Multi Architecture High Performance Packet ProcessingMichelle Holley
 
Debug dpdk process bottleneck & painpoints
Debug dpdk process bottleneck & painpointsDebug dpdk process bottleneck & painpoints
Debug dpdk process bottleneck & painpointsVipin Varghese
 
Xdp and ebpf_maps
Xdp and ebpf_mapsXdp and ebpf_maps
Xdp and ebpf_mapslcplcp1
 
Fun with Network Interfaces
Fun with Network InterfacesFun with Network Interfaces
Fun with Network InterfacesKernel TLV
 
Linux Networking Explained
Linux Networking ExplainedLinux Networking Explained
Linux Networking ExplainedThomas Graf
 
Enable DPDK and SR-IOV for containerized virtual network functions with zun
Enable DPDK and SR-IOV for containerized virtual network functions with zunEnable DPDK and SR-IOV for containerized virtual network functions with zun
Enable DPDK and SR-IOV for containerized virtual network functions with zunheut2008
 
eBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux KerneleBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux KernelThomas Graf
 
DPDK & Layer 4 Packet Processing
DPDK & Layer 4 Packet ProcessingDPDK & Layer 4 Packet Processing
DPDK & Layer 4 Packet ProcessingMichelle Holley
 
Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)Andriy Berestovskyy
 
LinuxCon 2015 Linux Kernel Networking Walkthrough
LinuxCon 2015 Linux Kernel Networking WalkthroughLinuxCon 2015 Linux Kernel Networking Walkthrough
LinuxCon 2015 Linux Kernel Networking WalkthroughThomas Graf
 
Linux Linux Traffic Control
Linux Linux Traffic ControlLinux Linux Traffic Control
Linux Linux Traffic ControlSUSE Labs Taipei
 
EBPF and Linux Networking
EBPF and Linux NetworkingEBPF and Linux Networking
EBPF and Linux NetworkingPLUMgrid
 
DevConf 2014 Kernel Networking Walkthrough
DevConf 2014   Kernel Networking WalkthroughDevConf 2014   Kernel Networking Walkthrough
DevConf 2014 Kernel Networking WalkthroughThomas Graf
 
Poll mode driver integration into dpdk
Poll mode driver integration into dpdkPoll mode driver integration into dpdk
Poll mode driver integration into dpdkVipin Varghese
 
Faster packet processing in Linux: XDP
Faster packet processing in Linux: XDPFaster packet processing in Linux: XDP
Faster packet processing in Linux: XDPDaniel T. Lee
 
Cilium - Container Networking with BPF & XDP
Cilium - Container Networking with BPF & XDPCilium - Container Networking with BPF & XDP
Cilium - Container Networking with BPF & XDPThomas Graf
 
The linux networking architecture
The linux networking architectureThe linux networking architecture
The linux networking architecturehugo lu
 
Introduction to eBPF and XDP
Introduction to eBPF and XDPIntroduction to eBPF and XDP
Introduction to eBPF and XDPlcplcp1
 

Mais procurados (20)

BPF Internals (eBPF)
BPF Internals (eBPF)BPF Internals (eBPF)
BPF Internals (eBPF)
 
DPDK: Multi Architecture High Performance Packet Processing
DPDK: Multi Architecture High Performance Packet ProcessingDPDK: Multi Architecture High Performance Packet Processing
DPDK: Multi Architecture High Performance Packet Processing
 
Debug dpdk process bottleneck & painpoints
Debug dpdk process bottleneck & painpointsDebug dpdk process bottleneck & painpoints
Debug dpdk process bottleneck & painpoints
 
Xdp and ebpf_maps
Xdp and ebpf_mapsXdp and ebpf_maps
Xdp and ebpf_maps
 
Fun with Network Interfaces
Fun with Network InterfacesFun with Network Interfaces
Fun with Network Interfaces
 
Linux Networking Explained
Linux Networking ExplainedLinux Networking Explained
Linux Networking Explained
 
Enable DPDK and SR-IOV for containerized virtual network functions with zun
Enable DPDK and SR-IOV for containerized virtual network functions with zunEnable DPDK and SR-IOV for containerized virtual network functions with zun
Enable DPDK and SR-IOV for containerized virtual network functions with zun
 
eBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux KerneleBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux Kernel
 
DPDK & Layer 4 Packet Processing
DPDK & Layer 4 Packet ProcessingDPDK & Layer 4 Packet Processing
DPDK & Layer 4 Packet Processing
 
Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)
 
Linux Network Stack
Linux Network StackLinux Network Stack
Linux Network Stack
 
LinuxCon 2015 Linux Kernel Networking Walkthrough
LinuxCon 2015 Linux Kernel Networking WalkthroughLinuxCon 2015 Linux Kernel Networking Walkthrough
LinuxCon 2015 Linux Kernel Networking Walkthrough
 
Linux Linux Traffic Control
Linux Linux Traffic ControlLinux Linux Traffic Control
Linux Linux Traffic Control
 
EBPF and Linux Networking
EBPF and Linux NetworkingEBPF and Linux Networking
EBPF and Linux Networking
 
DevConf 2014 Kernel Networking Walkthrough
DevConf 2014   Kernel Networking WalkthroughDevConf 2014   Kernel Networking Walkthrough
DevConf 2014 Kernel Networking Walkthrough
 
Poll mode driver integration into dpdk
Poll mode driver integration into dpdkPoll mode driver integration into dpdk
Poll mode driver integration into dpdk
 
Faster packet processing in Linux: XDP
Faster packet processing in Linux: XDPFaster packet processing in Linux: XDP
Faster packet processing in Linux: XDP
 
Cilium - Container Networking with BPF & XDP
Cilium - Container Networking with BPF & XDPCilium - Container Networking with BPF & XDP
Cilium - Container Networking with BPF & XDP
 
The linux networking architecture
The linux networking architectureThe linux networking architecture
The linux networking architecture
 
Introduction to eBPF and XDP
Introduction to eBPF and XDPIntroduction to eBPF and XDP
Introduction to eBPF and XDP
 

Semelhante a DPDK in Containers Hands-on Lab

9 creating cent_os 7_mages_for_dpdk_training
9 creating cent_os 7_mages_for_dpdk_training9 creating cent_os 7_mages_for_dpdk_training
9 creating cent_os 7_mages_for_dpdk_trainingvideos
 
JDO 2019: Tips and Tricks from Docker Captain - Łukasz Lach
JDO 2019: Tips and Tricks from Docker Captain - Łukasz LachJDO 2019: Tips and Tricks from Docker Captain - Łukasz Lach
JDO 2019: Tips and Tricks from Docker Captain - Łukasz LachPROIDEA
 
DCEU 18: Tips and Tricks of the Docker Captains
DCEU 18: Tips and Tricks of the Docker CaptainsDCEU 18: Tips and Tricks of the Docker Captains
DCEU 18: Tips and Tricks of the Docker CaptainsDocker, Inc.
 
Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)Ben Hall
 
Real World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and ProductionReal World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and ProductionBen Hall
 
7 hands on
7 hands on7 hands on
7 hands onvideos
 
PuppetConf 2016: The Challenges with Container Configuration – David Lutterko...
PuppetConf 2016: The Challenges with Container Configuration – David Lutterko...PuppetConf 2016: The Challenges with Container Configuration – David Lutterko...
PuppetConf 2016: The Challenges with Container Configuration – David Lutterko...Puppet
 
Challenges of container configuration
Challenges of container configurationChallenges of container configuration
Challenges of container configurationlutter
 
Docker Networking with New Ipvlan and Macvlan Drivers
Docker Networking with New Ipvlan and Macvlan DriversDocker Networking with New Ipvlan and Macvlan Drivers
Docker Networking with New Ipvlan and Macvlan DriversBrent Salisbury
 
Painless Perl Ports with cpan2port
Painless Perl Ports with cpan2portPainless Perl Ports with cpan2port
Painless Perl Ports with cpan2portBenny Siegert
 
桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作Philip Zheng
 
Automate drupal deployments with linux containers, docker and vagrant
Automate drupal deployments with linux containers, docker and vagrant Automate drupal deployments with linux containers, docker and vagrant
Automate drupal deployments with linux containers, docker and vagrant Ricardo Amaro
 
Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)Ben Hall
 
Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014biicode
 
Start tracking your ruby infrastructure
Start tracking your ruby infrastructureStart tracking your ruby infrastructure
Start tracking your ruby infrastructureSergiy Kukunin
 
Be a happier developer with Docker: Tricks of the trade
Be a happier developer with Docker: Tricks of the tradeBe a happier developer with Docker: Tricks of the trade
Be a happier developer with Docker: Tricks of the tradeNicola Paolucci
 
Docker Security workshop slides
Docker Security workshop slidesDocker Security workshop slides
Docker Security workshop slidesDocker, Inc.
 
Chris Swan ONUG Academy - Container Networks Tutorial
Chris Swan ONUG Academy - Container Networks TutorialChris Swan ONUG Academy - Container Networks Tutorial
Chris Swan ONUG Academy - Container Networks TutorialCohesive Networks
 

Semelhante a DPDK in Containers Hands-on Lab (20)

9 creating cent_os 7_mages_for_dpdk_training
9 creating cent_os 7_mages_for_dpdk_training9 creating cent_os 7_mages_for_dpdk_training
9 creating cent_os 7_mages_for_dpdk_training
 
JDO 2019: Tips and Tricks from Docker Captain - Łukasz Lach
JDO 2019: Tips and Tricks from Docker Captain - Łukasz LachJDO 2019: Tips and Tricks from Docker Captain - Łukasz Lach
JDO 2019: Tips and Tricks from Docker Captain - Łukasz Lach
 
DCEU 18: Tips and Tricks of the Docker Captains
DCEU 18: Tips and Tricks of the Docker CaptainsDCEU 18: Tips and Tricks of the Docker Captains
DCEU 18: Tips and Tricks of the Docker Captains
 
Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)
 
Real World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and ProductionReal World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and Production
 
7 hands on
7 hands on7 hands on
7 hands on
 
PuppetConf 2016: The Challenges with Container Configuration – David Lutterko...
PuppetConf 2016: The Challenges with Container Configuration – David Lutterko...PuppetConf 2016: The Challenges with Container Configuration – David Lutterko...
PuppetConf 2016: The Challenges with Container Configuration – David Lutterko...
 
Challenges of container configuration
Challenges of container configurationChallenges of container configuration
Challenges of container configuration
 
Docker Networking with New Ipvlan and Macvlan Drivers
Docker Networking with New Ipvlan and Macvlan DriversDocker Networking with New Ipvlan and Macvlan Drivers
Docker Networking with New Ipvlan and Macvlan Drivers
 
Painless Perl Ports with cpan2port
Painless Perl Ports with cpan2portPainless Perl Ports with cpan2port
Painless Perl Ports with cpan2port
 
桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作
 
Automate drupal deployments with linux containers, docker and vagrant
Automate drupal deployments with linux containers, docker and vagrant Automate drupal deployments with linux containers, docker and vagrant
Automate drupal deployments with linux containers, docker and vagrant
 
Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)Running Docker in Development & Production (DevSum 2015)
Running Docker in Development & Production (DevSum 2015)
 
Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014
 
Docker perl build
Docker perl buildDocker perl build
Docker perl build
 
Start tracking your ruby infrastructure
Start tracking your ruby infrastructureStart tracking your ruby infrastructure
Start tracking your ruby infrastructure
 
Be a happier developer with Docker: Tricks of the trade
Be a happier developer with Docker: Tricks of the tradeBe a happier developer with Docker: Tricks of the trade
Be a happier developer with Docker: Tricks of the trade
 
Docker Security workshop slides
Docker Security workshop slidesDocker Security workshop slides
Docker Security workshop slides
 
Chris Swan ONUG Academy - Container Networks Tutorial
Chris Swan ONUG Academy - Container Networks TutorialChris Swan ONUG Academy - Container Networks Tutorial
Chris Swan ONUG Academy - Container Networks Tutorial
 
ABCs of docker
ABCs of dockerABCs of docker
ABCs of docker
 

Mais de Michelle Holley

NFF-GO (YANFF) - Yet Another Network Function Framework
NFF-GO (YANFF) - Yet Another Network Function FrameworkNFF-GO (YANFF) - Yet Another Network Function Framework
NFF-GO (YANFF) - Yet Another Network Function FrameworkMichelle Holley
 
Edge and 5G: What is in it for the developers?
Edge and 5G: What is in it for the developers?Edge and 5G: What is in it for the developers?
Edge and 5G: What is in it for the developers?Michelle Holley
 
5G and Open Reference Platforms
5G and Open Reference Platforms5G and Open Reference Platforms
5G and Open Reference PlatformsMichelle Holley
 
De-fogging Edge Computing: Ecosystem, Use-cases, and Opportunities
De-fogging Edge Computing: Ecosystem, Use-cases, and OpportunitiesDe-fogging Edge Computing: Ecosystem, Use-cases, and Opportunities
De-fogging Edge Computing: Ecosystem, Use-cases, and OpportunitiesMichelle Holley
 
Building the SD-Branch using uCPE
Building the SD-Branch using uCPEBuilding the SD-Branch using uCPE
Building the SD-Branch using uCPEMichelle Holley
 
Enabling Multi-access Edge Computing (MEC) Platform-as-a-Service for Enterprises
Enabling Multi-access Edge Computing (MEC) Platform-as-a-Service for EnterprisesEnabling Multi-access Edge Computing (MEC) Platform-as-a-Service for Enterprises
Enabling Multi-access Edge Computing (MEC) Platform-as-a-Service for EnterprisesMichelle Holley
 
Accelerating Edge Computing Adoption
Accelerating Edge Computing Adoption Accelerating Edge Computing Adoption
Accelerating Edge Computing Adoption Michelle Holley
 
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*Install FD.IO VPP On Intel(r) Architecture & Test with Trex*
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*Michelle Holley
 
OpenDaylight Update (June 2018)
OpenDaylight Update (June 2018)OpenDaylight Update (June 2018)
OpenDaylight Update (June 2018)Michelle Holley
 
Tungsten Fabric Overview
Tungsten Fabric OverviewTungsten Fabric Overview
Tungsten Fabric OverviewMichelle Holley
 
Orchestrating NFV Workloads in Multiple Clouds
Orchestrating NFV Workloads in Multiple CloudsOrchestrating NFV Workloads in Multiple Clouds
Orchestrating NFV Workloads in Multiple CloudsMichelle Holley
 
Convergence of device and data at the Edge Cloud
Convergence of device and data at the Edge CloudConvergence of device and data at the Edge Cloud
Convergence of device and data at the Edge CloudMichelle Holley
 
Intel® Network Builders - Network Edge Ecosystem Program
Intel® Network Builders - Network Edge Ecosystem ProgramIntel® Network Builders - Network Edge Ecosystem Program
Intel® Network Builders - Network Edge Ecosystem ProgramMichelle Holley
 
Design Implications, Challenges and Principles of Zero-Touch Management Envir...
Design Implications, Challenges and Principles of Zero-Touch Management Envir...Design Implications, Challenges and Principles of Zero-Touch Management Envir...
Design Implications, Challenges and Principles of Zero-Touch Management Envir...Michelle Holley
 
Using Microservices Architecture and Patterns to Address Applications Require...
Using Microservices Architecture and Patterns to Address Applications Require...Using Microservices Architecture and Patterns to Address Applications Require...
Using Microservices Architecture and Patterns to Address Applications Require...Michelle Holley
 
Intel Powered AI Applications for Telco
Intel Powered AI Applications for TelcoIntel Powered AI Applications for Telco
Intel Powered AI Applications for TelcoMichelle Holley
 
Artificial Intelligence in the Network
Artificial Intelligence in the Network Artificial Intelligence in the Network
Artificial Intelligence in the Network Michelle Holley
 
Service Mesh on Kubernetes with Istio
Service Mesh on Kubernetes with IstioService Mesh on Kubernetes with Istio
Service Mesh on Kubernetes with IstioMichelle Holley
 
Intel® QuickAssist Technology Introduction, Applications, and Lab, Including ...
Intel® QuickAssist Technology Introduction, Applications, and Lab, Including ...Intel® QuickAssist Technology Introduction, Applications, and Lab, Including ...
Intel® QuickAssist Technology Introduction, Applications, and Lab, Including ...Michelle Holley
 

Mais de Michelle Holley (20)

NFF-GO (YANFF) - Yet Another Network Function Framework
NFF-GO (YANFF) - Yet Another Network Function FrameworkNFF-GO (YANFF) - Yet Another Network Function Framework
NFF-GO (YANFF) - Yet Another Network Function Framework
 
Edge and 5G: What is in it for the developers?
Edge and 5G: What is in it for the developers?Edge and 5G: What is in it for the developers?
Edge and 5G: What is in it for the developers?
 
5G and Open Reference Platforms
5G and Open Reference Platforms5G and Open Reference Platforms
5G and Open Reference Platforms
 
De-fogging Edge Computing: Ecosystem, Use-cases, and Opportunities
De-fogging Edge Computing: Ecosystem, Use-cases, and OpportunitiesDe-fogging Edge Computing: Ecosystem, Use-cases, and Opportunities
De-fogging Edge Computing: Ecosystem, Use-cases, and Opportunities
 
Building the SD-Branch using uCPE
Building the SD-Branch using uCPEBuilding the SD-Branch using uCPE
Building the SD-Branch using uCPE
 
Enabling Multi-access Edge Computing (MEC) Platform-as-a-Service for Enterprises
Enabling Multi-access Edge Computing (MEC) Platform-as-a-Service for EnterprisesEnabling Multi-access Edge Computing (MEC) Platform-as-a-Service for Enterprises
Enabling Multi-access Edge Computing (MEC) Platform-as-a-Service for Enterprises
 
Accelerating Edge Computing Adoption
Accelerating Edge Computing Adoption Accelerating Edge Computing Adoption
Accelerating Edge Computing Adoption
 
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*Install FD.IO VPP On Intel(r) Architecture & Test with Trex*
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*
 
DPDK & Cloud Native
DPDK & Cloud NativeDPDK & Cloud Native
DPDK & Cloud Native
 
OpenDaylight Update (June 2018)
OpenDaylight Update (June 2018)OpenDaylight Update (June 2018)
OpenDaylight Update (June 2018)
 
Tungsten Fabric Overview
Tungsten Fabric OverviewTungsten Fabric Overview
Tungsten Fabric Overview
 
Orchestrating NFV Workloads in Multiple Clouds
Orchestrating NFV Workloads in Multiple CloudsOrchestrating NFV Workloads in Multiple Clouds
Orchestrating NFV Workloads in Multiple Clouds
 
Convergence of device and data at the Edge Cloud
Convergence of device and data at the Edge CloudConvergence of device and data at the Edge Cloud
Convergence of device and data at the Edge Cloud
 
Intel® Network Builders - Network Edge Ecosystem Program
Intel® Network Builders - Network Edge Ecosystem ProgramIntel® Network Builders - Network Edge Ecosystem Program
Intel® Network Builders - Network Edge Ecosystem Program
 
Design Implications, Challenges and Principles of Zero-Touch Management Envir...
Design Implications, Challenges and Principles of Zero-Touch Management Envir...Design Implications, Challenges and Principles of Zero-Touch Management Envir...
Design Implications, Challenges and Principles of Zero-Touch Management Envir...
 
Using Microservices Architecture and Patterns to Address Applications Require...
Using Microservices Architecture and Patterns to Address Applications Require...Using Microservices Architecture and Patterns to Address Applications Require...
Using Microservices Architecture and Patterns to Address Applications Require...
 
Intel Powered AI Applications for Telco
Intel Powered AI Applications for TelcoIntel Powered AI Applications for Telco
Intel Powered AI Applications for Telco
 
Artificial Intelligence in the Network
Artificial Intelligence in the Network Artificial Intelligence in the Network
Artificial Intelligence in the Network
 
Service Mesh on Kubernetes with Istio
Service Mesh on Kubernetes with IstioService Mesh on Kubernetes with Istio
Service Mesh on Kubernetes with Istio
 
Intel® QuickAssist Technology Introduction, Applications, and Lab, Including ...
Intel® QuickAssist Technology Introduction, Applications, and Lab, Including ...Intel® QuickAssist Technology Introduction, Applications, and Lab, Including ...
Intel® QuickAssist Technology Introduction, Applications, and Lab, Including ...
 

Último

Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....ShaimaaMohamedGalal
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 

Último (20)

Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 

DPDK in Containers Hands-on Lab

  • 1. DPDK in Containers Hands-on Lab Clayne Robison, Intel Corporation
  • 2. Agenda •  Executive Summary •  DPDK and Containers Intro •  Hands-on Lab •  Conclusion 2
  • 3. Summary •  Linux* containers use fewer system resources •  More micro-services per host •  No VM overhead •  Containers still use kernel network stack •  Not ideal for SDN/NFV usages •  DPDK (and Open vSwitch*) can be used in Containers •  Elevated privileges required today 3
  • 4. Agenda •  Executive Summary •  DPDK and Containers Intro •  Hands-on Lab •  Conclusion 4
  • 6. 0 20,000,000 40,000,000 60,000,000 80,000,000 100,000,000 120,000,000 140,000,000 160,000,000 64 128 192 256 320 384 448 512 576 640 704 768 832 896 960 1024 1088 1152 1216 1280 1344 1408 1472 Packet Size 10GbE Packets/sec 40GbE Packets/sec 100GbE Packets/sec 6 The DPDK Problem Statement Packet Size 64 Bytes 40G packets/second 59.5 million each way Packet arrival interval 16.8 ns 2 GHz clock cycles/packet 33 cycles Packet Size 1024 Bytes 40G packets/second 4.8 million each way Packet arrival interval 208.8 ns 2 GHz clock cycles/packet 417 cycles From a CPU perspective: •  Last-level-cache (L3) hit ~40 cycles •  L3 miss, memory read is ~70ns (140 cycles at 2GHz) •  Harder to address at 100Gb rates Typical Network Infrastructure Packet Size Typical Server Packet Size
  • 9. Agenda •  Executive Summary •  DPDK and Containers Intro •  Hands-on Lab •  Conclusion 9
  • 10. Compute Node Host-VM Host OS Container-pktgen DPDK Open vSwitch* Container-testpmd DPDK vhostuser0 vhostuser3vhostuser2vhostuser1 pktgen testpmd Flow Flow System Layout DPDK DPDKDPDKDPDK
  • 11. Enter Lab Environment SSH from your laptop1 in to Cluster Jump Server2 •  IP Address: 207.108.8.161 •  SSH v2 preferred •  Username: student<1-50> ($ ssh student9@207.108.8.161) •  Password: same as username (e.g. student9) •  Repeat so that you have multiple connections to the Jump Server2 SSH from Cluster Jump Server2 in to assigned HostVM3 •  $ ssh user@HostVM-____ •  Username: user; Password: password •  Enter lab environment •  $ cd ~/training/dpdk-container-lab •  $ sudo su •  # source setenv.sh 11 Note: You need 3 ssh sessions into the jump server/HostVM 3. HostVM 2. Cluster Jump Server 1. Your Laptop
  • 12. RememberTRAINING_DIR =/home/user/training/dpdk-container-lab Lab Slide Key 12 # cd $DPDK_DIR (build the x86_64-native-linuxapp-gcc flavor of DPDK and put it in the x86_64-native-linuxapp-gcc dir) # make config T=$DPDK_BUILD O=$DPDK_BUILD # cd $DPDK_BUILD # make -j Manual Entry Box: Type this code on the command line, line by line # Short cuts TRAINING_DIR/ 00_build_dpdk.sh Bash Script Call-out: The file in this callout contains the same code as in the Manual Entry Box. Copy/ Paste line by line onto the command line, or simply run the en>re script.
  • 13. Build DPDK 16.11 13 # cd $DPDK_DIR (build the x86_64-native-linuxapp-gcc flavor of DPDK and put it in the x86_64-native-linuxapp-gcc dir) # make config T=$DPDK_BUILD O=$DPDK_BUILD # cd $DPDK_BUILD # make Or # cd $TRAINING_DIR # ./00_build_dpdk.sh
  • 14. Build Open vSwitch* 2.6.1 14 # cd $OVS_DIR (run the autoconf magic) # ./boot.sh (build OVS with DPDK support) # CFLAGS='-march=native' ./configure --with-dpdk=$DPDK_DIR/$DPDK_BUILD # make Or # cd $TRAINING_DIR # ./01_build_ovs.sh
  • 15. Prepare to Start Open vSwitch* 15 (create openvswitch directories) # mkdir -p /usr/local/etc/openvswitch # mkdir -p /usr/local/var/run/openvswitch (mount the hugepage tlbfs) # mount -t hugetlbfs -o pagesize=1G none /mnt/huge (show the fs table) # mount | grep -i “/mnt/huge” (insert the user-space IO driver into the kernel) # modprobe uio # insmod $DPDK_DIR/$DPDK_BUILD/kmod/igb_uio.ko Or # cd $TRAINING_DIR # ./02_prep_ovs.sh
  • 16. Start Open vSwitch* 16 # cd $OVS_DIR (initialize new OVS database) # ./ovsdb/ovsdb-tool create /usr/local/etc/openvswitch/conf.db ./ vswitchd/vswitch.ovsschema (start database server) # ./ovsdb/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock --remote=db:Open_vSwitch,Open_vSwitch,manager_options --pidfile –detach (initialize OVS database) # ./utilities/ovs-vsctl --no-wait init (configure OVS DPDK using 1GB and the ovswitchd thread on logical core 1) # ./utilities/ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true other_config:dpdk-lcore-mask=0x2 other_config:dpdk-socket-mem="1024” (start OVS) # ./vswitchd/ovs-vswitchd unix:/usr/local/var/run/openvswitch/db.sock --pidfile --detach Or # cd $TRAINING_DIR # ./03_start_ovs.sh
  • 17. Create the Open vSwitch* Bridge and Ports 17 $ cd $OVS_DIR (Tell OVS to use Core 2 for the PMD) # ./utilities/ovs-vsctl set Open_vSwitch . other_config:pmd-cpu-mask=0x4 (Create bridge br0 and vhost ports that use DPDK) # ./utilities/ovs-vsctl add-br br0 -- set bridge br0 datapath_type=netdev # ./utilities/ovs-vsctl add-port br0 vhost-user0 -- set Interface vhost-user0 type=dpdkvhostuser # ./utilities/ovs-vsctl add-port br0 vhost-user1 -- set Interface vhost-user1 type=dpdkvhostuser # ./utilities/ovs-vsctl add-port br0 vhost-user2 -- set Interface vhost-user2 type=dpdkvhostuser # ./utilities/ovs-vsctl add-port br0 vhost-user3 -- set Interface vhost-user3 type=dpdkvhostuser (Show br0 info) # ./utilities/ovs-vsctl show Or # cd $TRAINING_DIR # ./04_createports.sh Note port names. You’ll see them in a moment
  • 18. Add Routes/Flows to Open vSwitch* 18 (Clear clear current flows) #./utilities/ovs-ofctl del-flows br0 (Add bi-directional flow between port 2 and 3 -- vhost-user1 and vhost-user2) # ./utilities/ovs-ofctl add-flow br0 in_port=2,dl_type=0x800,idle_timeout=0,action=output:3 # ./utilities/ovs-ofctl add-flow br0 in_port=3,dl_type=0x800,idle_timeout=0,action=output:2 (Add bi-directional flow between port 1 and 4 -- vhost-user0 and vhost-user3) # ./utilities/ovs-ofctl add-flow br0 in_port=1,dl_type=0x800,idle_timeout=0,action=output:4 # ./utilities/ovs-ofctl add-flow br0 in_port=4,dl_type=0x800,idle_timeout=0,action=output:1 (Show the current flow configuration) # ./utilities/ovs-ofctl show br0 Or # cd $TRAINING_DIR # ./05_addroutes.sh Note the mapping between Open vSwitch and OpenFlow ports.
  • 19. Create testpmd Docker* Container (Already Done) 19 $ cat $TRAINING_DIR/docker-build/testpmd/Dockerfile FROM ubuntu COPY ./dpdk-container-lab /root/dpdk-container-lab WORKDIR /root/dpdk-container-lab COPY ./dpdk /usr/src/dpdk RUN apt-get update && apt-get install -y build-essential automake python-pip libcap-ng-dev gawk pciutils linux-headers-$(uname -a | awk '{print $3}') vim kmod RUN pip install -U pip six ENV DPDK_DIR "/usr/src/dpdk” ENV DPDK_BUILD "x86_64-native-linuxapp-gcc” ENV RTE_SDK "/usr/src/dpdk” ENV RTE_TARGET "x86_64-native-linuxapp-gcc” ENV TRAINING_DIR /root/dpdk-container-lab RUN ./build_dpdk.sh RUN ./build_testpmd.sh CMD ["/bin/bash"]
  • 20. Create testpmd Docker* Container (Con’t) (Already Done--DO NOT RUN in Lab) 20 $ cat $TRAINING_DIR//build_testpmd_container.sh #!/bin/bash DOCKER_BUILD_DIR="$(pwd)/docker-build/testpmd” DOCKER_TAG="ses2017/testpmd1” cd $DOCKER_BUILD_DIR docker build . -t $DOCKER_TAG
  • 21. Create pktgen Docker* Container (Already Done) 21 $ cat $TRAINING_DIR/docker-build/pktgen/Dockerfile FROM ses2017/testpmd COPY ./dpdk-container-lab /root/dpdk-container-lab WORKDIR /root/dpdk-container-lab COPY ./dpdk /usr/src/dpdk COPY ./pktgen /usr/src/pktgen RUN apt-get update && apt-get install -y build-essential automake python-pip libcap-ng-dev gawk pciutils linux-headers-$(uname -a | awk '{print $3}') vim kmod libpcap-dev RUN pip install -U pip six ENV DPDK_DIR "/usr/src/dpdk” ENV DPDK_BUILD "x86_64-native-linuxapp-gcc” ENV RTE_SDK "/usr/src/dpdk” ENV RTE_TARGET "x86_64-native-linuxapp-gcc” ENV PKTGEN_DIR "/usr/src/pktgen” ENV TRAINING_DIR /root/dpdk-container-lab RUN ./build_dpdk.sh RUN ./build_pktgen.sh CMD ["/bin/bash"]
  • 22. Create pktgen Docker* Container (Con’t) (Already Done--DO NOT RUN in Lab) 22 $ cat $TRAINING_DIR/build_pktgen_container.sh #!/bin/bash DOCKER_BUILD_DIR="$(pwd)/docker-build/pktgen” DOCKER_TAG="ses2017/pktgen1” cd $DOCKER_BUILD_DIR docker build . -t $DOCKER_TAG
  • 23. Run testpmd Docker* Container 23 # export DOCKER_TAG="ses2017/testpmd1” (Launch docker container in privileged mode with access to host hugepages and OVS DPDK sockets) # docker run -ti --privileged -v /mnt/huge:/mnt/huge -v /usr/local/var/run/openvswitch:/var/run/openvswitch $DOCKER_TAG Or # cd $TRAINING_DIR # 06_start_testpmd_container.sh
  • 24. Run pktgen Docker* Container 24 # export DOCKER_TAG="ses2017/pktgen1” (Launch docker container in privileged mode with access to host hugepages and OVS DPDK sockets) # docker run -ti --privileged -v /mnt/huge:/mnt/huge -v /usr/local/var/run/openvswitch:/var/run/openvswitch $DOCKER_TAG Or # cd $TRAINING_DIR # 07_start_pktgen_container.sh
  • 25. testpmd Container: Set dpdk parameters 25 /****** * -c 0xE0: DPDK can run on core 5-7: (0b1110 0000) * --master-lcore 5: master testpmd thread runs on core 5 (0b00100000) * -n 1: we only have one memory bank in this VM * --socket-mem 1024: use 1GB per socket * --file-prefix testpmd: name appended to hugepage files from this process * --no-pci don't look for any PCI devices * --vdev=net_virtio_user2,mac=00:00:00:00:00:02,path=/var/run/openvswitch/vhost-user2 * --vdev=net_virtio_user3,mac=00:00:00:00:00:03,path=/var/run/openvswitch/vhost-user3 * use a virtual device using the net_virtio_user driver, MAC address shown * and the path to the unix socket is /var/run/openvswitch/vhost-userX *****/ # export DPDK_PARAMS="-c 0xE0 --master-lcore 5 -n 1 --socket-mem 1024 --file-prefix testpmd --no-pci --vdev=net_virtio_user2,mac=00:00:00:00:00:02,path=/var/run/openvswitch/vhost-user2 --vdev=net_virtio_user3,mac=00:00:00:00:00:03,path=/var/run/openvswitch/vhost-user3" Or # cd $TRAINING_DIR # ./run_testpmd.sh
  • 26. testpmd Container: Set testpmd Parameters & Run testpmd 26 /******* * -i -- interactive mode * --burst=64: we are going to fetch 64 packets at at time * -txd=2048/--rxd=2048: we want 2048 descriptors in the rx and tx rings * --forward-mode=io: forward all packets received * --auto-start: start forwarding packets immediately on launch *--disable-hw-vlan: disable hardware VLAN * --coremask=0xC0: lock tespmd to run on cores 6-7 (0b1100 0000) *****/ # export TESTPMD_PARAMS="--burst=64 -i --disable-hw-vlan --txd=2048 --rxd=2048 --forward-mode=io --auto-start --coremask=0xC0” (Use the DPDK_DIR, DPDK_PARAMS and TESPMD_PARAMS in the environment) # $DPDK_DIR/app/test-pmd/testpmd $DPDK_PARAMS -- $TESTPMD_PARAMS Or # cd $TRAINING_DIR # ./run_testpmd.sh
  • 27. pktgen Container: Set dpdk parameters 27 /***** * -c 0x19: DPDK can run on core 0,3-4: (0b0001 1001) * --master-lcore 3: make the pktgen dpdk thread run on core 3 (0b1000) * -n 1: we only have one memory bank in this VM * --socket-mem 1024: use 1GB per socket * --file-prefix pktgen: name appended to hugepage files from this process * --no-pci don't look for any PCI devices * --vdev=net_virtio_user0,mac=00:00:00:00:00:00,path=/var/run/openvswitch/vhost-user0 * --vdev=net_virtio_user1,mac=00:00:00:00:00:01,path=/var/run/openvswitch/vhost-user1 * use a virtual device using the net_virtio_user driver, MAC address shown * and the path to the unix socket is /var/run/openvswitch/vhost-userX *****/ # export DPDK_PARAMS="-c 0x19 --master-lcore 3 -n 1 --socket-mem 1024 --file-prefix pktgen --no-pci --vdev=net_virtio_user0,mac=00:00:00:00:00:00,path=/var/run/openvswitch/vhost-user0 --vdev=net_virtio_user1,mac=00:00:00:00:00:01,path=/var/run/openvswitch/vhost-user1” Or # cd $TRAINING_DIR # ./run_pktgen.sh
  • 28. pktgen Container: Set pktgen Parameters & Run pktgen 28 /******* * -P: Promiscuous mode * -T: Color terminal output * -m "0.0,4.1" (core.port): core 0: port 0 rx/tx; core 4: port 1 rx/tx *****/ export PKTGEN_PARAMS='-T -P -m ”0.0,4.1"' (Use the PKTGEN_DIR, DPDK_DIR, DPDK_PARAMS and PKTGEN_PARAMS in the environ) # cd $PKTGEN_DIR # ./app/app/$DPDK_BUILD/pktgen $DPDK_PARAMS -- $PKTGEN_PARAMS Or # cd $TRAINING_DIR # ./run_pktgen.sh
  • 29. Useful testpmd and pktgen Commands 29 (Useful commands to use in testpmd) testpmd> show port stats all testpmd> clear port stats all testpmd> help (Useful commands to use in pktgen) Pktgen> set 0 count 1000000 Pktgen> set 1 count 1000000 Pktgen> start 0 Pktgen> start all Pktgen> set 0 rate 10 Pktgen> clr Pktgen> rst Pktgen> pdump 0 Pktgen> help
  • 30. Viewing CPU Resources on the Host 30 Applica8on Parameter Thread Core Mask (CPUs 0-7) Open vSwitch* dpdk-lcore-mask=0x2 daemon 0b0000 0010 pmd-cpu-mask=0x4 DPDK PMD 0b0000 0100 pktgen () -c 0x19 GUI & Messages 0b0000 1000 --master-lcore 3 DPDK master lcore 0b0000 1000 -m “0.0,4.1” DPDK PMD 0b0001 0001 testpmd --coremask=0xC0 DPDK master lcore 0b0010 0000 -c 0xE0 testpmd DPDK PMD 0b1100 0000
  • 31. Agenda •  Executive Summary •  DPDK and Containers Intro •  Hands-on Lab •  Conclusion 31
  • 32. Questions •  What kind of performance are you seeing? •  What should you see with 10GB connection? •  Why is performance so poor? •  Why do ISVs/Telcos/CommSPs care about containers? •  What problems do you see with the DPDK in container setup shown today? How would you solve them? 32
  • 33. Conclusion •  Container networks can use DPDK •  Security issues? •  Performance still highly dependent on configuration •  Intel® Clear Containers may provide more ideal solution 33
  • 34. References •  http://www.linuxquestions.org/questions/linux-newbie-8/how-to-use-dpdk-inside- linux-containers-4175537584/ •  https://builders.intel.com/docs/container-and-kvm-virtualization-for-nfv.PDF •  http://www.intel.com/content/dam/www/public/us/en/documents/white-papers/ linux-containers-hypervisor-based-vms-paper.pdf •  http://events.linuxfoundation.org/sites/events/files/slides/ Jun_Nakajima_NFV_Container_final.pdf •  http://developerblog.redhat.com/2015/06/02/can-you-run-intels-data-plane- development-kit-dpdk-in-adocker-container-yep/ •  http://dpdk.org/ml/archives/dev/2016-January/031219.html •  https://dpdksummit.com/Archive/pdf/2016USA/Day02-Session02-Steve %20Liang-DPDKUSASummit2016.pdf 34
  • 35. Legal Notices and Disclaimers Intel technologies’ features and benefits depend on system configuration and may require enabled hardware, software or service activation. Learn more at intel.com, or from the OEM or retailer. No computer system can be absolutely secure. Tests document performance of components on a particular test, in specific systems. Differences in hardware, software, or configuration will affect actual performance. Consult other sources of information to evaluate performance as you consider your purchase. For more complete information about performance and benchmark results, visit http://www.intel.com/performance. Intel, the Intel logo and others are trademarks of Intel Corporation in the U.S. and/or other countries. *Other names and brands may be claimed as the property of others. © 2017 Intel Corporation.