VMware上配置DPDK环境并运行实例程序
1. 在虚拟机VMware上配置环境
VMware安装:http://www.zdfans.com/html/5928.html
Ubuntu:https://www.ubuntu.com/download/desktop
为了更好地运行DPDK,可以多虚拟化几块网卡和CPU:
- 只有一张网卡是运行不了DPDK的,最少要两张。
- 多一点CPU可以在DPDK的程序中多调度一些逻辑核(lcore)
编译所需条件参考:http://www.cnblogs.com/vancasola/p/8881197.html
2. 编译安装DPDK
在官网下载DPDK的压缩包。建议下载 last stable版本:http://core.dpdk.org/download/
下载完之后解压并编译,完全照着quick-start手册的前三步即可(要在root权限下运行):http://core.dpdk.org/doc/quick-start/
tar xf dpdk.tar.gz
cd dpdk
make config T=x86_64-native-linuxapp-gcc
sed -ri 's,(PMD_PCAP=).*,\1y,' build/.config
make
3.挂载巨页
DPDK通过使用巨页分配,内存需要较少的页面,减少对TLB访问的miss,缩短了虚拟地址到物理地址的重定位的转换时间,因此提高了性能。巨页通常来说是2MB一个页,而不使用巨页的普通页一般是4KB,差距是明显的。
巨页的分配在每次开机之后都要立即进行一次,以防止内存在物理内存上已经被碎片化。设置巨页的方法如下(root权限下):
cd dpdk/usertools
./dpdk-setup.sh
----------------------------------------------------------
Step 2: Setup linuxapp environment
----------------------------------------------------------
[17] Insert IGB UIO module
[18] Insert VFIO module
[19] Insert KNI module
[20] Setup hugepage mappings for non-NUMA systems
[21] Setup hugepage mappings for NUMA systems
[22] Display current Ethernet/Crypto device settings
[23] Bind Ethernet/Crypto device to IGB UIO module
[24] Bind Ethernet/Crypto device to VFIO module
[25] Setup VFIO permissions
选取21(对于NUMA架构,就要对每一个NUMA节点分配巨页),按提示输入即可:
Option: 21
Removing currently reserved hugepages
Unmounting /mnt/huge and removing directory
Input the number of 2048kB hugepages for each node
Example: to have 128MB of hugepages available per node in a 2MB huge page system,
enter '64' to reserve 64 * 2MB pages on each node
Number of pages for node0: 64
Reserving hugepages
Creating /mnt/huge and mounting as hugetlbfs
Press enter to continue ...
4.编译示例程序(example)并运行 helloworld
编译过程参考 Sample Applications User Guides 即可:http://doc.dpdk.org/guides/sample_app_ug/compiling.html
编译好DPDK后,意味着你得到了应用程序所需要的依赖库。当需要在Linux下的DPDK环境编译应用程序时,环境变量 RTE_SDK 和 RTE_TARGET 是必须的,含义如下:
- RTE_SDK :指向DPDK的主目录
- RTE_TARGET : 指向DPDK目标环境的目录
以编译DPDK自带的example下的应用程序为例(root权限):
# 设置两个环境变量
export RTE_SDK=/home/chang/dpdk
export RTE_TARGET=build
# 编译example文件夹下的程序
make -C examples
完成后,在example文件夹下会新生成build文件夹,里面存放着可执行文件。下面是helloworld
的执行情况:
root@ubuntu:/home/chang/dpdk/examples/helloworld/build# ./helloworld -c f
EAL: Detected 8 lcore(s)
EAL: No free hugepages reported in hugepages-1048576kB
EAL: Multi-process socket /var/run/.rte_unix
EAL: Probing VFIO support...
EAL: PCI device 0000:02:01.0 on NUMA socket -1
EAL: Invalid NUMA socket, default to 0
EAL: probe driver: 8086:100f net_e1000_em
EAL: PCI device 0000:02:02.0 on NUMA socket -1
EAL: Invalid NUMA socket, default to 0
EAL: probe driver: 8086:100f net_e1000_em
EAL: PCI device 0000:02:03.0 on NUMA socket -1
EAL: Invalid NUMA socket, default to 0
EAL: probe driver: 8086:100f net_e1000_em
EAL: PCI device 0000:02:04.0 on NUMA socket -1
EAL: Invalid NUMA socket, default to 0
EAL: probe driver: 8086:100f net_e1000_em
hello from core 1
hello from core 2
hello from core 3
hello from core 0
root@ubuntu:/home/chang/dpdk/examples/helloworld/build# ./helloworld -c ff
EAL: Detected 8 lcore(s)
EAL: No free hugepages reported in hugepages-1048576kB
EAL: Multi-process socket /var/run/.rte_unix
EAL: Probing VFIO support...
EAL: PCI device 0000:02:01.0 on NUMA socket -1
EAL: Invalid NUMA socket, default to 0
EAL: probe driver: 8086:100f net_e1000_em
EAL: PCI device 0000:02:02.0 on NUMA socket -1
EAL: Invalid NUMA socket, default to 0
EAL: probe driver: 8086:100f net_e1000_em
EAL: PCI device 0000:02:03.0 on NUMA socket -1
EAL: Invalid NUMA socket, default to 0
EAL: probe driver: 8086:100f net_e1000_em
EAL: PCI device 0000:02:04.0 on NUMA socket -1
EAL: Invalid NUMA socket, default to 0
EAL: probe driver: 8086:100f net_e1000_em
hello from core 1
hello from core 2
hello from core 3
hello from core 4
hello from core 5
hello from core 6
hello from core 7
hello from core 0
-c 参数后面跟着16进制的掩码,表示使用那些CPU逻辑核。f代表0xf也就是四个二进制1,使用前4个逻辑核,ff则代表使用8个逻辑核。
VMware上配置DPDK环境并运行实例程序的更多相关文章
- eclipse弃坑记第一篇之在idea上配置Tomcat环境并创建Javaweb项目的详细步骤原创
IntelliJ IDEA是一款功能强大的开发工具,在代码自动提示.重构.J2EE支持.各类版本工具(如git.svn.github).maven等方面都有很好的应用. IntelliJ IDEA有免 ...
- Eclipse/MyEclipse上配置Spring环境
在MyEclipse上配置Spring环境 myeclipse其实已经集成Spring的开发环境,我们只需在新建的项目上添加spring的配置环境就可以 新建一个java项目 选中创建好的项目之后,在 ...
- [eShopOnContainers 学习系列] - 03 - 在远程 Ubuntu 16.04 上配置开发环境
直接把 md 粘出来了,博客园的富文本编辑器换成 markdown,没啥效果呀 ,先凑合吧.实在不行换地方 # 在远程 Ubuntu 16.04 上配置开发环境 ## 零.因 为什么要用这么麻烦的 ...
- 第二步 在D2RQ平台上配置jena环境
第二步 在D2RQ平台上配置jena环境 2013年10月16日 9:48:53 搞了这么长时间语义,只用过protege这样的工具,一直没有落实到实际代码上.jena也看过好久了,总认为是hp公司的 ...
- Mac上配置GTK环境
Mac上配置GTK环境 安装command line工具, 如果安装了Xcode, 就直接跳过该步骤 安装Homebrew 使用brew install pkg-config 使用brew insta ...
- 【转】如何配置EditPlus中Java运行环境,运行Java程序
如何配置EditPlus中Java运行环境,运行Java程序 http://jingyan.baidu.com/article/86112f13725e2e2736978711.html 分步阅读 E ...
- mac上配置react-native环境run-ios/run-android命令遇到的问题
新报错(rn版本:0.53.3)2018.3.6 今天在搞react-native环境时,遇到了一些坑,这里记录一下. 首先最重要的一点是一定要按官网一步一步来,不然可能会出现一些奇奇怪怪的问题! 官 ...
- 【SSH学习笔记】—从配置Struts1环境到简单实例
以下我将从一个简单点的计算器实例,介绍struts1的环境配置,以及其重要的两个核心类:ActionForm和Action 简单计算器实现思路: 1.提供一个输入界面,输入两个数字和运算符(+.-. ...
- 攻城狮在路上(陆)-- 配置hadoop本地windows运行MapReduce程序环境
本文的目的是实现在windows环境下实现模拟运行Map/Reduce程序.最终实现效果:MapReduce程序不会被提交到实际集群,但是运算结果会写入到集群的HDFS系统中. 一.环境说明: ...
随机推荐
- phpqrcode生成动态二维码简单实例
这是一个利用phpqrcode生成动态二维码简单实例,比微信官方提供的接口还要好用.二维码是动态的,不用生成图片,可自定义二维码大小,间隙,跳转地址等. 参数设置: include_once 'php ...
- pandas对excel处理过程中的总结
在处理excel数据时需要将一组具有相同标签值的数据给按标签抽取出来,同样的标签值对应着同一个类别,这项操作让我对pandas的聚合功能有了更深刻的认识. 所谓聚合groupby,实际上是指将向量或者 ...
- Python中sys模块sys.argv取值并判断
#!usr/bin/env python # -*- coding: utf-8 -*- # Author:Sun Xiaolin import sys judgement = sys.argv[1] ...
- 《Arduino 机器人制作指南》唐乐 分享 pdf下载
链接:https://pan.baidu.com/s/1cF7gaQoJXwfY0asnsimFrQ提取码:stq1
- .Net Core 管道机制
开篇先上一张中间件原理图,帮助大家对管道机制形成一个直观的认识 下面我们实现一个简单的管道机制,以此为例深入理解管道机制的原理 1. 首先定义一个委托,该委托接收一个上下文对象,返回值为Task,代码 ...
- CS100.1x-lab1_word_count_student
这是CS100.1x第一个提交的有意义的作业,自己一遍做下来对PySpark的基本应用应该是可以掌握的.相关ipynb文件见我github. 这次作业的目的如题目一样--word count,作业分成 ...
- 不把DB放进容器的理由
原文地址:http://www.tuicool.com/articles/6VbqeqQ 原文为英文,以下是笔者的个人总结. 此处的DB包括但不限于Redis.ElasticSearch. 1.数据安 ...
- 2018年美国大学生数学建模竞赛(MCM/ICM) F题解题思路
任务一:开发价格点,建立综合定价模型. 其中 a 代表开发价格点系数,代表个人财产评估.K 为 PI 交易系数 以这个进行评估,将个人划分为具有合理相似性的子组: 当 a 等于 0-30 时,子组为: ...
- X5webview去掉分享功能和缓存功能
x5webview比原生的webview适配更好,加载更快,对音视频的兼容性更好,具备独特的优势 1) 速度快:相比系统webview的网页打开速度有30+%的提升: 2) 省流量:使用云端优化技术使 ...
- xshell提示评估过期怎么办?
刚刚打开xshell准备连上虚拟机写代码,结果提示评估过期,真的很气,在百度上找了好久才找到解决办法,现在分享给大家:. 1.复制这个链接在浏览器打开https://www.netsarang.com ...