弯曲评论荣誉出品:网络系统设计模型概论

Sina WeiboBaiduLinkedInQQGoogle+RedditEvernote分享




(6个打分, 平均:4.33 / 5)

雁过留声

“弯曲评论荣誉出品:网络系统设计模型概论”有15个回复

  1. 陈怀临 于 2011-01-26 2:58 下午

    我为什么放一个计算复杂性的图作为logo,想表达的意思很清晰:系统设计没有最优,只有次优。世界上本不存在单纯的平台,只有为了某个特定应用的解决方案。沉淀下来的,然后抽象出来的就是平台。

  2. Kevin 于 2011-01-26 3:01 下午

    RTC对网络系统是一把双刃的刀。关键是看工程师的理解。用的不好,系统很容易starving其他逻辑。在RTC模型下,能看见人性的贪婪。没人愿意轻易
    yield CPU。

    首席总结的精辟。。。在multithread下这个问题尤甚。。。

  3. kernelchina 于 2011-01-26 6:04 下午

    弯曲的评论是精华,首席又一次证明了这个观点。RTC我个人认为是实时系统的一个要求,如果是可抢占,调度的系统,执行时间没办法保障。在网络系统里面,资源基本上需要独占,但有时候又有共享的需求,所以在CPU调度,内存分配方面,有复杂化的趋势,这个趋势会让工程师的日子越来越难过。

  4. 陈怀临 于 2011-01-26 7:02 下午

    The philosphy being embedded onto 弯曲评论 from my humble understanding are of the following two:

    --自由软件人文精神:弯曲的本质

    --大教堂和集市原理:评论的力量

    合之为:弯曲评论。

  5. jack 于 2011-01-27 12:03 上午

    学习 …

  6. 沙加 于 2011-01-27 1:26 上午

    编者注:SMP vs AMP。一切都是折中。最重要的是底层是一个单一的OS环境。单独把某些核上运行一个bare mental的 RTOS 的年代基本上过去。目前看不出来有什么问题不能通过类似Zeor Overhead Linux/Freebsd不能解决的问题。如果在性能损失10%的情况或(和)上限的情况下,系统设计应该不要introduce proprietary OS。弊大于利 if otherwise。另外,感觉业务部署方面,还应该是AMP的模型,但底层OS是一个SMP的结构。
    ====================================
    关于上述结论,想跟首席请教两个问题。
    首先是关于zero overhead Linux的问题。要定制一个Zero overhead Linux系统,需要做哪几方面的工作?我个人猜测,大概可以包含:简化调度算法,锁定TLB,硬件核与进程绑定。请问理解是否正确,还有其他需要做的工作吗?比如关于驱动,是使用Linux的用户态驱动吗?如果要深入定制一个Zero overhead的Linux系统,个人感觉工作量好像不比引入一个Bare metal操作系统来得小。当然,BareMetal在工具链等方面确实很弱,这是其最大的缺陷。
    第二个问题是关于性能的,首席提到性能损耗上限是10%。个人感觉如果性能真能做到这个水平,那确实用Linux一统是更好的OS方案。不过凭以前的经验数据,好像基本上只能达到裸跑性能的一半左右。能否详细告知10%上限判断的依据。

  7. 陈怀临 于 2011-01-27 11:18 上午

    OS方面其实现在没啥好做的。Zero Overhead Linux其实也都是满天飞。没啥新颖的。

    关键的问题是:Application Aware OS。

    我有许多观点。但我今天不说。。。

  8. Hui Liu 于 2011-01-27 7:03 下午

    To 沙加:

    关于裸奔我有一个疑问,在多核处理器中,裸奔如何发挥多核的威力?难道自己做一套SMP的运行环境(spinlock, 线程切换,per-cpu data),这个不是不可以做,但是是不是代价有点高? 另外,比较成熟的OS都能提供比较好的profiling工具,对于性能优化意义很大。如果裸奔,又如何能够方便的profiling and tuning?

    To 首席:
    你经常教导说河蟹党员从来不隐瞒自己的观点,请谈谈Application Aware Os

  9. anonymous 于 2011-01-27 7:32 下午

    @Hui Liu
    首席只崇拜邓稼先,又不是霍元甲.

  10. pp 于 2011-01-27 8:12 下午

    裸奔怎么定义的?是只干很简单的事,没有OS?

  11. 沙加 于 2011-01-27 10:37 下午

    To Hui Liu:
    现在多核用的比较多的一种场景是整体的AMP,局部的SMP。一般会在部分核部署成熟的OS,但在对数据传输速率要求较高的核上,还是会部署一些定制的bare metal OS。裸奔的好处是,系统比较简单,定制化高,相比成熟的商用OS更能发挥性能上的优势。但是,从长远来看,我还是很认同首席的观点,即LINUX 一统。毕竟如你所说,裸跑相比于成熟的OS,在调测工具上的劣势是很明显的。裸跑OS基本来说就是自己实现一些Memory,Timer,mutex,中断管理,维测等功能。整个系统就是一个While的循环。目前阶段就我们的经验值来看,Linux在性能上跟裸跑相比还是很大。这也是我咨询首席ZOL的细节原因。如果Linux的性能真能达到裸跑的9成,且定制开发工作量不大,那真的没裸跑系统啥事了。

  12. Apple 于 2011-01-28 6:37 上午

    很精辟,很多信息一下还无法彻底吸收,需要多看看,很受教.

    另外探讨一个小问题,http 1.1 tunnel
    mode, 这个东东是业界通用的表述吗,我一般都称之为keepalive方式?

  13. Hui Liu 于 2011-01-28 8:37 上午

    To 沙加:

    也就是说在某个特定的单核上裸奔,而不是在多核上裸奔,那难度就小了很多。

    用单核裸奔来提高性能或者用多核+SMP os来提高性能 应该还是后者更靠谱一些。关键代码的伸缩性要好,要发挥多核的威力。

  14. SSX 于 2011-02-08 5:40 上午

    首席的点评是整个文章的点睛之笔呀,理解不了首席话是很难设计出优秀产品出来的,呵呵。

  15. 陈怀临 于 2011-02-08 6:51 上午

    这个同学有希望。。。。。。