由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 开始折腾DPDK+mTCP
相关主题
10G网络到了请教一下,怎么控制发送UDP的速度?
现在哪个DPDK的TCP/IP Stack比较好?慘啊,好好的CS博士生,只能來我們公司混。。。
求推荐一个真心交流技术的地方why do we need to map user threads to kernel threads?
腾讯开源tcp ip stack, f-stack。有用过的么?Node.js 是有 multiple-threading 支持的?
弱问:1us包含packet在网卡里和kernel里处理的时间吗?a dummy OS question
求教 网络大侠, 如何提高网卡吞吐量question on TCP slow start
求救网络大牛们,如何处理tcp短连接UDP广播老是接收不到
[bssd] Go 的大并发处理网络碰到两个个问题C10M除了socket以外,还牵涉其他方面的技巧
相关话题的讨论汇总
话题: dpdk话题: mtcp话题: cpu话题: packets话题: tcp
进入Programming版参与讨论
1 (共1页)
g****u
发帖数: 252
1
昨天已经把机器找出来了,还没装系统。到时候用来测老魏的服务器。
有同学愿意一起折腾吗?
我好无聊。
t**********1
发帖数: 550
2
赞一个。我给你一个建议。mTCP的threading model完完全全错了。
你要是能给改对了,绝对是大成绩。当然了,这也是大工程。
g****u
发帖数: 252
3
我先跑起来再说。已有啥证据证明用户态stack将来有用吗?
我怎么觉得将来都是TCP offload啊。如果用户态stack+40G网卡的话,
CPU没有cycle可以用来干别的事情了吧?

【在 t**********1 的大作中提到】
: 赞一个。我给你一个建议。mTCP的threading model完完全全错了。
: 你要是能给改对了,绝对是大成绩。当然了,这也是大工程。

t**********1
发帖数: 550
4
用户态是必须的。TCP offload不矛盾,但是能做的有限。
CPU每秒能handle的IRQ少得可怜。你想处理大量packets,只能polling。
现在的网卡,好一点的都是PCI-E直接到LLC (Last Level Cache)。因此不是纯软件,
但是一定要100%用户态。
你要CPU干啥?I/O也就一个core。你有多少core?

【在 g****u 的大作中提到】
: 我先跑起来再说。已有啥证据证明用户态stack将来有用吗?
: 我怎么觉得将来都是TCP offload啊。如果用户态stack+40G网卡的话,
: CPU没有cycle可以用来干别的事情了吧?

g****u
发帖数: 252
5
这个我不懂。我先玩两天再说。

【在 t**********1 的大作中提到】
: 用户态是必须的。TCP offload不矛盾,但是能做的有限。
: CPU每秒能handle的IRQ少得可怜。你想处理大量packets,只能polling。
: 现在的网卡,好一点的都是PCI-E直接到LLC (Last Level Cache)。因此不是纯软件,
: 但是一定要100%用户态。
: 你要CPU干啥?I/O也就一个core。你有多少core?

j******a
发帖数: 100
6
NAPI 2.6的kernel很早就有了,2.4.20也port了,在irq handle里都是关了中断,直接
poll包的
我还是没有领会用户态有什么逆天的优势

【在 t**********1 的大作中提到】
: 用户态是必须的。TCP offload不矛盾,但是能做的有限。
: CPU每秒能handle的IRQ少得可怜。你想处理大量packets,只能polling。
: 现在的网卡,好一点的都是PCI-E直接到LLC (Last Level Cache)。因此不是纯软件,
: 但是一定要100%用户态。
: 你要CPU干啥?I/O也就一个core。你有多少core?

t**********1
发帖数: 550
7
用户态latency最低,throughput最高。
网卡所做的就是pool packets,等用户poll就好了。

【在 j******a 的大作中提到】
: NAPI 2.6的kernel很早就有了,2.4.20也port了,在irq handle里都是关了中断,直接
: poll包的
: 我还是没有领会用户态有什么逆天的优势

b*******s
发帖数: 5216
8
less copy

【在 j******a 的大作中提到】
: NAPI 2.6的kernel很早就有了,2.4.20也port了,在irq handle里都是关了中断,直接
: poll包的
: 我还是没有领会用户态有什么逆天的优势

m*f
发帖数: 3078
9
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

【在 j******a 的大作中提到】
: NAPI 2.6的kernel很早就有了,2.4.20也port了,在irq handle里都是关了中断,直接
: poll包的
: 我还是没有领会用户态有什么逆天的优势

T********i
发帖数: 2416
10
赞。我以前一直都用OpenIOnLoad。比latency DPDK没戏。throughput DPDK一点不差。
Hugepage和numa之类的优化我也玩了很多年了。
老兄貌似是搞这个方向的,有兴趣一起折腾么?

packets

【在 m*f 的大作中提到】
: 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

相关主题
求教 网络大侠, 如何提高网卡吞吐量请教一下,怎么控制发送UDP的速度?
求救网络大牛们,如何处理tcp短连接慘啊,好好的CS博士生,只能來我們公司混。。。
[bssd] Go 的大并发处理网络碰到两个个问题why do we need to map user threads to kernel threads?
进入Programming版参与讨论
c*a
发帖数: 806
11
很好奇。这方面商业产品很多。现在主要还剩下什么?

【在 T********i 的大作中提到】
: 赞。我以前一直都用OpenIOnLoad。比latency DPDK没戏。throughput DPDK一点不差。
: Hugepage和numa之类的优化我也玩了很多年了。
: 老兄貌似是搞这个方向的,有兴趣一起折腾么?
:
: packets

T********i
发帖数: 2416
12
我也是孤陋寡闻。用OnLoad轮子用惯了。
想看看其他user space的TCP stack。目前看mTCP做了大量工作,但是threading model
纯粹扯淡。
看来您是行家,能不能介绍下靠谱的商业产品?

【在 c*a 的大作中提到】
: 很好奇。这方面商业产品很多。现在主要还剩下什么?
m*f
发帖数: 3078
13
我只能给魏老师提鞋了,过两个月吧,我有时间和你联系

【在 T********i 的大作中提到】
: 赞。我以前一直都用OpenIOnLoad。比latency DPDK没戏。throughput DPDK一点不差。
: Hugepage和numa之类的优化我也玩了很多年了。
: 老兄貌似是搞这个方向的,有兴趣一起折腾么?
:
: packets

T********i
发帖数: 2416
14
您过谦了。承受不起。等你消息。

【在 m*f 的大作中提到】
: 我只能给魏老师提鞋了,过两个月吧,我有时间和你联系
g****u
发帖数: 252
15
我看了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就会出问题。

model

【在 T********i 的大作中提到】
: 我也是孤陋寡闻。用OnLoad轮子用惯了。
: 想看看其他user space的TCP stack。目前看mTCP做了大量工作,但是threading model
: 纯粹扯淡。
: 看来您是行家,能不能介绍下靠谱的商业产品?

n*******7
发帖数: 181
16
最近可能有Cavium Networks的DPDK的工作机会。按他们的说法,Intel的DPDK很多做法
还是学他们的。想请教大家这个方面是不是技术已经成熟,还有值得深入专研的地方吗?
我的理解是这方面的工作主要是在bypass kernel,用专有的CPU和一些特殊的做法充分
利用CPU硬件特性,所以需要的知识都是些特殊硬件的细节。不知道专业做这些细节工
作是不是太窄了。
w***g
发帖数: 5958
17
你要看成是专搞DPDK的话确实比较窄。
你要看成是是用C语言写系统程序,只是要用到DPDK轮子的话,感觉就会好一点。
如果不是写网卡驱动只是用DPDK,其实没有多少特殊的细节。
DPDK用到的几个技术都可以用来优化别的软件。
现在搞系统的人还是很多的,只是本版bias太大,这里看不到而已。

吗?

【在 n*******7 的大作中提到】
: 最近可能有Cavium Networks的DPDK的工作机会。按他们的说法,Intel的DPDK很多做法
: 还是学他们的。想请教大家这个方面是不是技术已经成熟,还有值得深入专研的地方吗?
: 我的理解是这方面的工作主要是在bypass kernel,用专有的CPU和一些特殊的做法充分
: 利用CPU硬件特性,所以需要的知识都是些特殊硬件的细节。不知道专业做这些细节工
: 作是不是太窄了。

n*******7
发帖数: 181
18
多榭wdong!
用DPDK做各种应用不窄。做DPDK的内部工作可能还是较窄的。
用C语言写系统程序,听起来很普适。但具体做起来,大多数是用具体硬件环境的
proprietary知识,而不用常见的轮子,所以虽然系统性能指标做高了,但在简历上看
起来较偏,反而比不上用轮子的适用面广。

【在 w***g 的大作中提到】
: 你要看成是专搞DPDK的话确实比较窄。
: 你要看成是是用C语言写系统程序,只是要用到DPDK轮子的话,感觉就会好一点。
: 如果不是写网卡驱动只是用DPDK,其实没有多少特殊的细节。
: DPDK用到的几个技术都可以用来优化别的软件。
: 现在搞系统的人还是很多的,只是本版bias太大,这里看不到而已。
:
: 吗?

b*******s
发帖数: 5216
19
现在这个经济趋势,互联网泡沫离破也快了,到时会平衡一点

【在 w***g 的大作中提到】
: 你要看成是专搞DPDK的话确实比较窄。
: 你要看成是是用C语言写系统程序,只是要用到DPDK轮子的话,感觉就会好一点。
: 如果不是写网卡驱动只是用DPDK,其实没有多少特殊的细节。
: DPDK用到的几个技术都可以用来优化别的软件。
: 现在搞系统的人还是很多的,只是本版bias太大,这里看不到而已。
:
: 吗?

N*****m
发帖数: 42603
20
scylladb有dpdk的driver,有点意思

【在 w***g 的大作中提到】
: 你要看成是专搞DPDK的话确实比较窄。
: 你要看成是是用C语言写系统程序,只是要用到DPDK轮子的话,感觉就会好一点。
: 如果不是写网卡驱动只是用DPDK,其实没有多少特殊的细节。
: DPDK用到的几个技术都可以用来优化别的软件。
: 现在搞系统的人还是很多的,只是本版bias太大,这里看不到而已。
:
: 吗?

n******t
发帖数: 4406
21
latency呢?我觉得要追求pps这种东西可以做聚合就行,为什么要poll cpu啊?
总之我觉得dpdk是intel的思维方式,不太感冒。

packets

【在 m*f 的大作中提到】
: 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

1 (共1页)
进入Programming版参与讨论
相关主题
C10M除了socket以外,还牵涉其他方面的技巧弱问:1us包含packet在网卡里和kernel里处理的时间吗?
像QQ/FB chat/GTalk这些是怎么实时检查用户状态?求教 网络大侠, 如何提高网卡吞吐量
如何强制thread和cpu绑定?求救网络大牛们,如何处理tcp短连接
p-thread profiling[bssd] Go 的大并发处理网络碰到两个个问题
10G网络到了请教一下,怎么控制发送UDP的速度?
现在哪个DPDK的TCP/IP Stack比较好?慘啊,好好的CS博士生,只能來我們公司混。。。
求推荐一个真心交流技术的地方why do we need to map user threads to kernel threads?
腾讯开源tcp ip stack, f-stack。有用过的么?Node.js 是有 multiple-threading 支持的?
相关话题的讨论汇总
话题: dpdk话题: mtcp话题: cpu话题: packets话题: tcp