完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
昨晚读了一篇Paper:https://penberg.org/parakernel-hotos19.pdf
大意是说,随着IO设备的进化,它们的存取/传输速率已经超过了CPU到内存的存储/传输速率,再也不再是慢速 外设 了,所以,对这些快速设备的管理和操作要发生改变才能适应,从这个意义上讲,几乎一成不变的Linux kernel在很多方面确实阻滞了性能的优化。 这可能是现如今人们纷纷转向DPDK/netmap或者XDP的本质原因了。怎么说呢?周末回上海前,发一篇感想。 在人们的印象中,一台标准的计算机包含三大件:
有了现实中的计算机组成后,下一步就是设计操作系统来管理这些东西,事实上,几乎任何操作系统都可以按照这堆东西划分为不同的模块:
于是操作系统为了管理这些慢速设备,不得不设计出复杂的机制来进行速率的适配,数据的缓存等,无论是Unix/Linux还是Windows,均是在这个假设下设计出来的。 但是,事情在悄悄地起变化,外设也逐渐高速化,智能化,变得和CPU差不多了,越来越多的外设自带了存储芯片,俨然另一组CPU/内存挂在同一块主板上... 这个时候,操作系统应该作为一个协调者更合适,而不再适合继续作为管理者了,但是那些旧时代复杂的管理机制依然存在。以网络协议栈为例:
于是,各种优化措施应着需求而来:
重构的思路很显然有两个:
人们肯定知道如何处理这种高速的网络流,但是内核代码是写死的,版本迭代周期漫长,很难重构,那么如何让懂行的人自己的代码处理高速流就是唯一要解决的问题,很显然就有upload和offload两种方法了。
自2012年开始我就一直在关注Linux网络协议栈转发平面的性能优化,那个时代所谓的网络优化几乎都是基于Linux内核协议栈的优化,在还没有智能网卡,DPDK也不火爆的时代,能做的只是优化协议栈,当时除了华为等大厂也很少有做这块工作的,像BAT这种互联网公司开始迭代的第一代云网络也都是从内核协议栈起步的,即便如此也很少有人专门做这块。 互联网应用在云计算的大环境下开始大爆发,互联网流量也开始指数级暴涨,数据中心开始成为网络的核心,拥有通用处理器和万兆网卡生态的Intel率先研发并大规模推广DPDK显然只是时间问题,这是时代的产物。 时光流逝,不禁感慨,到了2016年,2017年至今,几乎相关公司招聘网络方面研发人员的任何JD上都会要求类似DPDK/eBPF,从而几乎人人的简历上都会写上相关的经验,显然,时代发生了变化。 不变的态度则是拥抱变化。 |
|
|
|
只有小组成员才能发言,加入小组>>
4241个成员聚集在这个小组
加入小组3264 浏览 0 评论
航顺(HK)联合电子发烧友推出“近距离体验高性能Cortex-M3,免费申请价值288元评估板
4212 浏览 1 评论
4212 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-3 06:48 , Processed in 0.532298 second(s), Total 74, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号