由买买提看人间百态

topics

全部话题 - 话题: dpdk
1 (共1页)
m*f
发帖数: 3078
1
来自主题: Programming版 - 开始折腾DPDK+mTCP
10gbps,dpdk对64byte的包,处理能力直接到线速,大概双向28.88 million packets
per second,这个网上都查得到。同样纯linux内核协议栈只能处理到dpdk的零头,同样
双向,64 bytes的小包,印象中不到5 million packets per second。腾讯和阿里都有
dpdk现成的产品好多年
dpdk不完全是用户态这么简单,还有很多别的基于linux的技术,比如huge page,物理
页可以是2m或1g,大大减少了tlb的失败的可能性,通常标准linux的物理页只有4k
w***g
发帖数: 5958
2
来自主题: Programming版 - 开始折腾DPDK+mTCP
你要看成是专搞DPDK的话确实比较窄。
你要看成是是用C语言写系统程序,只是要用到DPDK轮子的话,感觉就会好一点。
如果不是写网卡驱动只是用DPDK,其实没有多少特殊的细节。
DPDK用到的几个技术都可以用来优化别的软件。
现在搞系统的人还是很多的,只是本版bias太大,这里看不到而已。

吗?
g****u
发帖数: 252
3
来自主题: Programming版 - 开始折腾DPDK+mTCP
我看了mTCP的paper。这货的目的是要代替内核TCP。threading model和别的一系列
design decision都是按这个目的做出的。作为一个用户态的通用的TCP库,需要实现
两点:
- 库本身不能霸占着CPU不放。因为用户程序可能也要跑CPU。所以mTCP是基于event
而不是polling的。mTCP本来应该是从PSIO(event)开始做的。DPDK应该是后来加上去的。
DPDK是polling。
- 不能假设逻辑线程<=物理线程。对于有的应用,逻辑线程可能是物理线程的
好几倍,靠send/recv阻塞的时候操统调度来提高硬件利用率。我那个客户端就是
这么干的。
这个paper里提到了context-switch。这是很明显的一个indicator: paper里讲的
线程是逻辑线程。如果限制线程数绑定CPU,mTCP应该可以做成context-switch-free的。
不过得把pthread那套同步机制全都换掉才行。
关键还是通用 vs 专用的问题。如果做成专用的话,paper估计就发不出去了。
其实写paper的时候把PSIO换成DPDK,review... 阅读全帖
T********i
发帖数: 2416
4
来自主题: Programming版 - 开始折腾DPDK+mTCP
赞。我以前一直都用OpenIOnLoad。比latency DPDK没戏。throughput DPDK一点不差。
Hugepage和numa之类的优化我也玩了很多年了。
老兄貌似是搞这个方向的,有兴趣一起折腾么?

packets
n*******7
发帖数: 181
5
来自主题: Programming版 - 开始折腾DPDK+mTCP
最近可能有Cavium Networks的DPDK的工作机会。按他们的说法,Intel的DPDK很多做法
还是学他们的。想请教大家这个方面是不是技术已经成熟,还有值得深入专研的地方吗?
我的理解是这方面的工作主要是在bypass kernel,用专有的CPU和一些特殊的做法充分
利用CPU硬件特性,所以需要的知识都是些特殊硬件的细节。不知道专业做这些细节工
作是不是太窄了。
n*******7
发帖数: 181
6
来自主题: Programming版 - 开始折腾DPDK+mTCP
多榭wdong!
用DPDK做各种应用不窄。做DPDK的内部工作可能还是较窄的。
用C语言写系统程序,听起来很普适。但具体做起来,大多数是用具体硬件环境的
proprietary知识,而不用常见的轮子,所以虽然系统性能指标做高了,但在简历上看
起来较偏,反而比不上用轮子的适用面广。
N*****m
发帖数: 42603
7
来自主题: Programming版 - 开始折腾DPDK+mTCP
scylladb有dpdk的driver,有点意思
n******t
发帖数: 4406
8
来自主题: Programming版 - 开始折腾DPDK+mTCP
latency呢?我觉得要追求pps这种东西可以做聚合就行,为什么要poll cpu啊?
总之我觉得dpdk是intel的思维方式,不太感冒。

packets
w***g
发帖数: 5958
9
来自主题: Programming版 - 现在哪个DPDK的TCP/IP Stack比较好?
这个我前段时间刚研究过。mTCP不行。最好的是seastar,就scylladb用的那个。
你还回过我帖子。
seastar有个自带的HTTP客户端叫seawreck,可以上他们的DPDK stack。
他们的网页在这儿https://github.com/scylladb/seastar/wiki/HTTPD-benchmark
我千辛万苦刚刚也跑起来了,两台机器1G网卡背对背连。
Server: 10.2.0.20:10000
Connections: 256
Requests/connection: dynamic (timer based)
Requests on cpu 0: 7714601
Requests on cpu 1: 7529698
Requests on cpu 3: 7504488
Requests on cpu 2: 7484931
Total cpus: 4
Total requests: 30233718
Total time: 60.002058
Requests/sec: 503878.016799
也就是 504K req/s。 我昨天发的... 阅读全帖
S*A
发帖数: 7142
10
来自主题: Programming版 - 10M persistent TCP connections
我懂,凡是 X 现在不存在就没意义。这个论证是错的,你自己知道
辨不过去,然后就抛出我不管。

总共就
这个 Robert 也就是先锋,探探路的。OpenOnLoad 这些是很特别的厂家
应用也没有得到开源的支持。Intel DPDK 就不一样了,代码都看得到。
里面又很多开发人员都是Linux 内核的常见 hacker。去年就又大概 8 个
thread 是关于 DPDK, 大家在改 kernel 的时候都注意不要 break 了 DPDK
的。而且 DPDK 支持不只一个种网卡。这个 DPDK 已经可以到 80G 了。
我还在琢磨做个工具自动把 kernel 的 stack port 到 DPDK 呢。
对了就对了,错了就错了,承认很难吗?你是随口说说吗, IPV8, 还贴了一大
篇引文,故意通过隐藏人家前提条件的限定语来引诱读者做错误的结论。这个
就是赤裸裸的有义误导。你贴引文的时候不会仔细看看吗?要不是我还真读
过 Robert 的东西,光看你说的误导还会真以为是那末回事了。
科学就是要严谨,一就是一,二就是二,没有什么误解。讨论起来多简单。
你要把一不严谨,就有 N 种不严谨... 阅读全帖
w***g
发帖数: 5958
11
来自主题: Programming版 - 发一个HTTP micro benchmark
我看赵策这么desperate,顺便帮他做下广告。我自己感兴趣的是DPDK。
这个benchmark里DPDK 服务器 + 传统客户端能做到192K req/s,
(我重复出来是210K req/s)
比C++/vert.x传统服务器高差不多一倍。但是其实DPDK服务器是没用足的,
客户端是bottleneck。如果用多台客户机,DPDK吞吐量能进一步提高。
我在相同的硬件上试了DPDK 服务器 + DPDK 客户端,吞吐量能做到
500K req/s。也就是vert.x的5.5倍。这个5.5倍只是HTTP短消息的开销,
如果业务逻辑加上去,速度提升就不会那么明显。vert.x相对别的
框架的提高也是同理。一般app应该连vert.x的性能都不需要的。
T********i
发帖数: 2416
12
根据我对有限文档的理解,根本不是你说的那回事。
这货有一个primary process。就是busy polling。实现一个bsd的socket栈。
你的程序是另外一个process。要link它那个socket库。Api都改名了。你这个process
的socket操作要通过primary。通信是shared memory。
貌似他们保留了huge page内存。给dpdk和他们自己的框架使用。我一般用huge page保
留我自己的numa memory pool。被他们用了,我自己就用不着了。


: 上次搞DPDK还是几年前,恍若隔世啊。 我记得上次看的时候唯一能用的user-
space

: stack是seastar。 据说f-stack性能不如seastar,但是在公网环境下稳定性更
好。

: 差别应该在于seastar是custom stack,f-stack用的是freebsd的stack。

: 刚刚看了一眼,DPDK自己的TCP/IP stack好像也起来了。

: 这货应该没啥threading model。就是一个core... 阅读全帖
g****u
发帖数: 252
13
来自主题: Programming版 - 10G网络到了
不能跑。硬件太老了。能跑DPDK的版本要贵好几倍。但是能上RoCE。
另外有一个能跑DPDK的1GB网卡正在路上。我家里唯一一台能跑DPDK
的机器是我的工作机,没法用来倒腾。
其实赵策说得也对,如果不是为了每年省几千块钱一台机器的话,
我也会上cloud的,跑机房干嘛。穷人的日子,只能精打细算。
w***g
发帖数: 5958
14
来自主题: Programming版 - 发一个HTTP micro benchmark
http://pseudo.co.de/seastar-dpdk-web-framework-showdown/
注意不上DPDK的话,vert.x和C++是一样的,目测还高那么一星星星点。
(DPDK那个是虚的。加上业务逻辑后会下来很多。)
GO完败。
w***g
发帖数: 5958
15
上次搞DPDK还是几年前,恍若隔世啊。 我记得上次看的时候唯一能用的user-space
stack是seastar。 据说f-stack性能不如seastar,但是在公网环境下稳定性更好。
差别应该在于seastar是custom stack,f-stack用的是freebsd的stack。
刚刚看了一眼,DPDK自己的TCP/IP stack好像也起来了。
这货应该没啥threading model。就是一个core上pin一个process,
每个process配置好以后跑一个event loop。然后有状态后触发
callback。callback里面是一个用巨大的switch实现的状态机。
扫了一眼范例感觉就是这样,没仔细看。
我觉得用10GB以太网配上DPDK来做deep learning训练的
parameter server或许能卖钱, 如果能做出来的话。
T*******e
发帖数: 4928
16
来自主题: Programming版 - 要不还是搞俱乐部算了
回你在了另一个楼的帖子:不是不 care.
其实你把DPDK 介绍出来很好。
虽然看了你的帖子我并不懂,但至少 Google了一下,
混个眼熟。以后如果用得到 DPDK,当然会考虑。
我其实很想向大牛们学习,写开源项目, 就是没人
带呀。自己乱闯也不知绕多少弯路,掉多少坑里。
S*A
发帖数: 7142
17

Go 和 python 性能还是强太多,不是一个级别的东西。
我就是想说这个,goroutine 直接简单粗暴上了数量
效果是不好的。
还没有到 DPDK 这样变态。而且 DPDK 移植性比较弱。
调硬件平台。

发帖数: 1
18
DPDK需要CPU、NIC(mlx)、kernel(linux)、hypervisor(libvirt)、distro(redhat)、
compiler(gcc)通力合作,能編譯不等於能高效工作


: DPDK是一个软件方案,有什么关系吗?

t*********r
发帖数: 2558
19
来自主题: Automobile版 - Porsche Designed
http://www.youtube.com/watch?v=aSD0CKgk_NE
DPDK transmission.
l****u
发帖数: 95
20
new grads 也行,站内联系,多谢!
公司HQ在上海,成立于2000年,湾区有R&D中心。
////
We are hiring software engineer position at SIHUA Technologies in Silicon
Valley focusing on cutting-edge SDN, Container and OpenStack networking. In
this team, you will have opportunity to architect, design and develop
prototypes for proof of concept. The candidate will have to be a self-
motivated and passionate professional and you will be interacting and
working closely with Cloud platform team to deliver high value hyper-
converged IT ar... 阅读全帖
l****u
发帖数: 95
21
来自主题: JobMarket版 - Cupertino 公司招 C 程序员
最好有1年以上工作经验,优秀的new grads也可考虑。
公司办理H1B和绿卡。公司由海归于2000年在上海成立。
站内联系。
*Description*
We are hiring software engineer position at SIHUA Technologies in Silicon
Valley focusing on hyper-converged storage. In this team, you will have
opportunity to architect, design and develop prototypes for proof of concept
. The candidate will have to be a self-motivated and passionate professional
and you will be interacting and working closely with Cloud platform team to
deliver high value hyper-converged IT archite... 阅读全帖
L******t
发帖数: 1985
22
来自主题: EmergingNetworking版 - 有兴趣搞一个userspace的nat实现吗
Did you ever hear of Intel DPDK?
m**t
发帖数: 1292
23
来自主题: EmergingNetworking版 - 有兴趣搞一个userspace的nat实现吗
any intesting DPDK applications available?
L******t
发帖数: 1985
24
来自主题: EmergingNetworking版 - 有兴趣搞一个userspace的nat实现吗
Plenty nowadays.
Pure software like Vyatta's virtual router.
Hardware appliance like Fortinet's firewalls.
Bunches of startups working on virtual appliances with Intel DPDK being the
enabling technology.
S*A
发帖数: 7142
25
来自主题: Programming版 - 10M persistent TCP connections
C10M 的定义有好几个方面,不是 hold 住 10M 个连接没有神魔
流量就可以的。
这个是网上抄来的 C10M 定义:
Today (2013), $1200 will buy you a computer with 8 cores, 64 gigabytes of
RAM, 10-gbps Ethernet, and a solid state drive. Such systems should be able
to handle:
- 10 million concurrent connections
- 10 gigabits/second
- 10 million packets/second
- 10 microsecond latency
- 10 microsecond jitter
- 1 million connections/second
直接用 linux 做的网络处理上限大概在 1M packet/sec 左右。
所以没有 openonload/DPDK 包的数目就吃不消。
S*A
发帖数: 7142
26
来自主题: Programming版 - 10M persistent TCP connections
PF_RING 主要用在接受方。发送和 TCP 连接还不太行。
目前比较靠谱的是这个,至少可以看到源代码。
www.dpdk.org
OpenOnLoad 完全没有代码看,而且网卡比Intel 的贵。
Intel e1000 还是比较容易找到的。
S*A
发帖数: 7142
27
来自主题: Programming版 - 10M persistent TCP connections
C10M 的定义有好几个方面,不是 hold 住 10M 个连接没有神魔
流量就可以的。
这个是网上抄来的 C10M 定义:
Today (2013), $1200 will buy you a computer with 8 cores, 64 gigabytes of
RAM, 10-gbps Ethernet, and a solid state drive. Such systems should be able
to handle:
- 10 million concurrent connections
- 10 gigabits/second
- 10 million packets/second
- 10 microsecond latency
- 10 microsecond jitter
- 1 million connections/second
直接用 linux 做的网络处理上限大概在 1M packet/sec 左右。
所以没有 openonload/DPDK 包的数目就吃不消。
S*A
发帖数: 7142
28
来自主题: Programming版 - 10M persistent TCP connections
PF_RING 主要用在接受方。发送和 TCP 连接还不太行。
目前比较靠谱的是这个,至少可以看到源代码。
www.dpdk.org
OpenOnLoad 完全没有代码看,而且网卡比Intel 的贵。
Intel e1000 还是比较容易找到的。
T********i
发帖数: 2416
29
来自主题: Programming版 - 10M persistent TCP connections
hohoho你又要撒泼。
Robert所说的就是Solarflare Openonload和Intel DPDK。都是commodity了。我都说了
几个月了。难道你还要再发明一把?到你那里就成了科幻外星科技了。
你还是寄希望于下次投胎智商高一点吧。
S*A
发帖数: 7142
30
来自主题: Programming版 - 10M persistent TCP connections
你也好好休息吧,Robert 是做研究的,研究出来的成果,
很多已经被实现在 OpenOnLoad/DPDK 上面,你直接用就行了,
不需要自己写 custom driver/network stack。
就像你用 ngix 不需要自己写 http parser 一样。
S*A
发帖数: 7142
31
来自主题: Programming版 - 10M persistent TCP connections
Sign, 我本来都想消停了。
最可笑的是,我本来是想做个实验帮你证否的老Wei 的 64G 1M
的。没想到我的实验最后做出来支持老Wei 的论断。然后我就变
成帮凶走狗了。
你想继续丢人显眼那我门就继续吧。反正你的笑点那末多。
你已经被证明了把 Robert 的文章读都读不懂,网络协议和实现都不能
分,不知道那里得出个改协议类比 IPV8 的结论。对于你读人家文章的
能力我们还能指望什么呢?
你连基本的逻辑理解能力,common sense 都没有,我还能如何说服你
呢?就剩下反复重复命题的论证法,多喊两遍,这个命题就证明了。
这个是不讲道理人用的招数。
跟你说了 OpenOnLoad/DPDK 是可以直接用的,当然说了你也不管,
因为你没有用过。我也没有,老wei 有用过,你应该听听老wei说用
这个要不要自己写 custom driver.
说什么实践是检验真理的唯一标准。
只不过实践不在你这边的时候,就不是检验标准了。

呗。
of
stack
p*u
发帖数: 2454
32

check out Intel DPDK
w***g
发帖数: 5958
33
DPDK我知道。但是用来干嘛?
刚刚看了篇USENIX 2015 best paper,用software distributed shared memory
做大数据处理。里面有个图显示RDMA比TCP要快两三倍。
感觉最后都是拚硬件。InfiniBand一根网线就要上百,
网卡上千,交换机一个好几万。都是大投资啊。
相比之下,花千把块钱买个Titan X就可以玩deep learning了,
要平民化得多。
g****u
发帖数: 252
34
来自主题: Programming版 - 开始折腾DPDK+mTCP
昨天已经把机器找出来了,还没装系统。到时候用来测老魏的服务器。
有同学愿意一起折腾吗?
我好无聊。
t**********1
发帖数: 550
35
来自主题: Programming版 - 开始折腾DPDK+mTCP
赞一个。我给你一个建议。mTCP的threading model完完全全错了。
你要是能给改对了,绝对是大成绩。当然了,这也是大工程。
g****u
发帖数: 252
36
来自主题: Programming版 - 开始折腾DPDK+mTCP
我先跑起来再说。已有啥证据证明用户态stack将来有用吗?
我怎么觉得将来都是TCP offload啊。如果用户态stack+40G网卡的话,
CPU没有cycle可以用来干别的事情了吧?
t**********1
发帖数: 550
37
来自主题: Programming版 - 开始折腾DPDK+mTCP
用户态是必须的。TCP offload不矛盾,但是能做的有限。
CPU每秒能handle的IRQ少得可怜。你想处理大量packets,只能polling。
现在的网卡,好一点的都是PCI-E直接到LLC (Last Level Cache)。因此不是纯软件,
但是一定要100%用户态。
你要CPU干啥?I/O也就一个core。你有多少core?
g****u
发帖数: 252
38
来自主题: Programming版 - 开始折腾DPDK+mTCP
这个我不懂。我先玩两天再说。
j******a
发帖数: 100
39
来自主题: Programming版 - 开始折腾DPDK+mTCP
NAPI 2.6的kernel很早就有了,2.4.20也port了,在irq handle里都是关了中断,直接
poll包的
我还是没有领会用户态有什么逆天的优势
t**********1
发帖数: 550
40
来自主题: Programming版 - 开始折腾DPDK+mTCP
用户态latency最低,throughput最高。
网卡所做的就是pool packets,等用户poll就好了。
b*******s
发帖数: 5216
41
来自主题: Programming版 - 开始折腾DPDK+mTCP
less copy
c*a
发帖数: 806
42
来自主题: Programming版 - 开始折腾DPDK+mTCP
很好奇。这方面商业产品很多。现在主要还剩下什么?
T********i
发帖数: 2416
43
来自主题: Programming版 - 开始折腾DPDK+mTCP
我也是孤陋寡闻。用OnLoad轮子用惯了。
想看看其他user space的TCP stack。目前看mTCP做了大量工作,但是threading model
纯粹扯淡。
看来您是行家,能不能介绍下靠谱的商业产品?
m*f
发帖数: 3078
44
来自主题: Programming版 - 开始折腾DPDK+mTCP
我只能给魏老师提鞋了,过两个月吧,我有时间和你联系
T********i
发帖数: 2416
45
来自主题: Programming版 - 开始折腾DPDK+mTCP
您过谦了。承受不起。等你消息。
b*******s
发帖数: 5216
46
来自主题: Programming版 - 开始折腾DPDK+mTCP
现在这个经济趋势,互联网泡沫离破也快了,到时会平衡一点
g****u
发帖数: 252
47
来自主题: Programming版 - Server release了
牛!我刚刚装好了两台测试机。我现在就来测。
不过发现我的机器都是RTL的烂网卡,暂时没法玩DPDK了。
T********i
发帖数: 2416
48
来自主题: Programming版 - 10G网络到了
先看看DPDK能跑不?
c*a
发帖数: 806
49
来自主题: Programming版 - 10G网络到了
你这个太过时了吧。网络这种东西日新月异。一年多前的新闻很容易误导。
现在40/100G都已经是commodity, 就是贵了
关键他们讨论的不是速度,而是DPDK支持,这个一下把范围缩小了
m*f
发帖数: 3078
50
来自主题: Programming版 - 10G网络到了
所有DPDK官方支持的NIC基本都在这里
1 (共1页)