歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> Linux文化 >> 故事:《內核瓶頸突破》(一)

故事:《內核瓶頸突破》(一)

日期:2017/2/27 12:18:07   编辑: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駐足觀望。

倚天不出,誰與爭雄?

(待續)


Copyright © Linux教程網 All Rights Reserved