当前位置:Linux教程 - Linux文化 - 故事:《内核瓶颈突破》(一)

故事:《内核瓶颈突破》(一)


题记:

哪里有艰险,哪里就有我们。


§1

去年底,国内有家公司要上大规模Email系统,决定把平台改建在Linux上。但是这家公司原有的Email系统是从SUN的机器上移植来,程序既大又奢侈,一上来就开3000个进程。这一下惹出了大麻烦。

§2 进程瓶颈

Linux是一个多处理操作系统,从它的诞生伊始就是天生的网络平台。当时芬兰的大学生Linus因为买不起昂贵的商用操作系统,就在自己的386机器上自做了一个。

但是X86体系结构却必须考虑和以前的兼容。Linux既然运行在X86的硬件上,也必须遵守这一套体系结构。

而Linux上进程调度所需的全局描述符表(gdt)正受到了这个X86的限制,结果使得目前的Linux Kernel 稳定版(v2.2.X)只能达到4090个进程数。

这位用户,正好遇到了这个娘胎里带来的问题。

§3 坐以待毙?

怎么办? Linux2.4稳定版的核心还没出来。而且根据经验,核心要到2.4.10以上才能稳定,之间一直是消除bug、不断的patch,真正的企业应用还不行。

这一耗就是半年,在Internet时代,半年是个天文级的数字--用户早就流失了。等,是等不起的。

当时,国内主要的几家Linux公司,说到底都是做汉化,也不可能向他们求援。


这项工作与开发应用程序完全不同,要动就要对Linux整个内核予以修改。环环相扣,险像环生,哪怕做一个小小的改动,也得看到一百步以后的结果。

当时,冲浪的产品卖得很好,在联邦软件排行榜上高居第一;一般用户也不会遇到这一问题。拿国内的惯例来说,能够将redhat汉化得不错就足可以自满了,哪有闲工夫管Linux老家的事!

就在此刻,冲浪的研发部门站了出来:“经过反复的测算,我们可以做这件事;但是必须给我们时间。”

§4 临时的恐惧

此时,任一的头上也捏了一把汗。

他整天和这些程序员生息与共,完全知道研发的技术水平。但是这次要决策,会遇到两个问题:一是花多少代价能做出来,二是做出来能有多少价值。

Linux内核2.4一旦出来,那么一切做的工作就是枉废。充其量就是在2.2到2.4的中间,打了一个patch。

这是绝对吃了力不讨好的事,几个星期甚至几个月时间,能够干不少的事。


但是如果不做,摆在眼前的用户的需求怎么办?
如果我们不做的话,有更多的用户会由于Linux最大进程限制而产生的疑惧,怎么办?

目前Internet上运行的服务器,仅仅就因为Linux Kernel 稳定版(v2.2.X)存在的这个“最大进程数的限制”----这笔小小的缺憾为多少Linux的推广带来局限,使众多的用户对Linux驻足观望。

倚天不出,谁与争雄?

(待续)