偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

從操作系統(tǒng)機(jī)制淺談服務(wù)器平臺(tái)的選擇

系統(tǒng)
在做一個(gè)系統(tǒng)分析及方案架構(gòu)選擇時(shí),很多人常會(huì)說(shuō)我選擇Linux作為服務(wù)器是當(dāng)然,為什么當(dāng)然呢?為什么不選擇windows server呢?本文就操作系統(tǒng)機(jī)制來(lái)淺析一下這個(gè)問(wèn)題。

  在做一個(gè)系統(tǒng)分析及方案架構(gòu)選擇時(shí),很多人常會(huì)說(shuō)我選擇Linux作為服務(wù)器是當(dāng)然,為什么當(dāng)然呢?為什么不選擇windows server呢?我試著從簡(jiǎn)單個(gè)人的角度去理解描述它。個(gè)人淺見(jiàn),拋磚引玉一下。

  先從網(wǎng)上抄點(diǎn)市場(chǎng)數(shù)據(jù)吧(未經(jīng)證實(shí)),當(dāng)然這些數(shù)據(jù)最終形成,不一定完全是純技術(shù)的原因,更多是商業(yè)市場(chǎng)方面的原因,說(shuō)簡(jiǎn)單點(diǎn)就是出于利益等原因,但我們做過(guò)簡(jiǎn)單的用戶,我們只能接受適應(yīng),當(dāng)然,有時(shí)還能發(fā)發(fā)牢騷。

  Linux誕生,開(kāi)發(fā),發(fā)展于網(wǎng)絡(luò),所以對(duì)網(wǎng)絡(luò)應(yīng)用的支持度是與生俱來(lái)的,集群,分布式都是他(如果算上Unix)率先實(shí)現(xiàn)支持的,在服務(wù)器OS占有量超過(guò)75%,國(guó)際TOP500的服務(wù)器91.8%使用Linux系的操作系統(tǒng)。Windows發(fā)跡于個(gè)人桌面系統(tǒng),真正的Server始于2000,系統(tǒng)消耗的性能比較大(其實(shí)大不了多少,隨著技術(shù)發(fā)展,微軟開(kāi)始在server上做了更多的努力,現(xiàn)在額外性能消耗已沒(méi)有以前多了,呵呵),安全性方面也差于Linux(部分原因是由于windows黑客數(shù)量多,所以不能過(guò)于冤枉它,呵呵)。

一、從性能調(diào)優(yōu)方來(lái)考慮:

  對(duì)高并發(fā)及海量數(shù)據(jù)的服務(wù)平臺(tái),性能都是不斷優(yōu)化調(diào)整出來(lái)的。而不是什么的高超的架構(gòu)設(shè)計(jì)就能一步到位的。

  • Linux:遠(yuǎn)遠(yuǎn)勝出,因?yàn)閘inux是方便調(diào)優(yōu)的,方便定制,可以完全針對(duì)機(jī)器的配置設(shè)置優(yōu)化,也可針對(duì)你所要?jiǎng)?chuàng)建的服務(wù)特點(diǎn)來(lái)優(yōu)化。
  • Windows:首先內(nèi)在支持消耗一定的資源比如在Windows下,gui是在內(nèi)核態(tài)運(yùn)行的(參見(jiàn)Windows Internals)你是無(wú)法不要它的,呵呵,其實(shí)是對(duì)于常用的系統(tǒng)操作的支持而提供過(guò)多,不容易調(diào)整的功能及模塊。當(dāng)然如果你是微軟的高級(jí)的開(kāi)發(fā)人員,你完全可以做到非常到全的系統(tǒng)調(diào)優(yōu),但可惜的,這些人都不在你的公司,同時(shí)你從人力資源市場(chǎng)上批量獲得此類人才的可能性為零。

  二、IO

  我們這里不討論一般的IO模型,我們只討論一些操作系統(tǒng)中面向高并發(fā)高吞吐量的所用的IO模型進(jìn)行討論

  Linux 的IO模型為:

  1.select /poll

  • 基本上就是輪詢機(jī)制來(lái)查看每個(gè)IO句柄有無(wú)讀寫數(shù)據(jù),不足很明顯:
  • 1024句柄限制,當(dāng)然有辦法進(jìn)行調(diào)整。
  • 用戶空間的輪詢機(jī)制消耗過(guò)多不必要的資源,消耗會(huì)隨著IO句柄的增加而增加,特別對(duì)長(zhǎng)鏈接應(yīng)用的負(fù)面影響是最大的。

  2.epoll:

  a.機(jī)制:

  基于“偽”AIO(異步IO).當(dāng)有讀寫狀態(tài)時(shí),事件通知用戶級(jí)。以內(nèi)核態(tài)實(shí)現(xiàn),以達(dá)到高效及節(jié)省資源。

  b.優(yōu)點(diǎn):

  • 支持一個(gè)進(jìn)程打開(kāi)大數(shù)目的socket描述符(FD)
  • IO效率不隨FD數(shù)目增加而線性下降
  • 使用mmap加速內(nèi)核與用戶空間的消息傳遞
  • 內(nèi)核微調(diào)提供的優(yōu)化可能性及靈活性

  3.本地IO角度

windows IO

  1.Windows的高效模型Completion IO 完成端口

a.機(jī)制:

  重疊IO支持:其實(shí)就是AIO(異步IO),說(shuō)白話一點(diǎn)就是從內(nèi)核級(jí)別在有數(shù)據(jù)讀寫可能時(shí)通過(guò)回調(diào)函數(shù)或事件來(lái)通知用戶空間進(jìn)行數(shù)據(jù)處理。

  對(duì)線程進(jìn)行管理:

  操作返回的方式:一般操作完成后要通知程序進(jìn)行后續(xù)處理。但寫操作可以不通知用戶,此時(shí)如果用戶寫操作不能馬上完成,寫操作的相關(guān)數(shù)據(jù)會(huì)被暫存到非交換緩沖區(qū)中,在操作完成的時(shí)候,系統(tǒng)會(huì)自動(dòng)釋放緩沖區(qū),此時(shí)發(fā)起完寫操作,使用的內(nèi)存就可以釋放了。但如果占用非交換緩沖太多會(huì)使系統(tǒng)停止響應(yīng)。

  三、進(jìn)程,線程:

  這個(gè)不做詳細(xì)分析,太多關(guān)于這方面的資料:這里我們只關(guān)注幾點(diǎn):

  1.簡(jiǎn)單機(jī)制:

  Windows:提供進(jìn)程與線程接口,基于線程進(jìn)行調(diào)度,進(jìn)程提供資源共享空間。

  Linux:內(nèi)核只提供進(jìn)程,線程只是用戶級(jí)別的封裝接口,以進(jìn)程方式實(shí)現(xiàn)線程,只是一個(gè)主進(jìn)程以子進(jìn)程方式創(chuàng)建了線程這些子進(jìn)程共享一些資源罷了。

  2.對(duì)比:

  windows下的進(jìn)程資源消耗大于linux 的進(jìn)程。

3.安全機(jī)制:

  歷史上看linux用戶管理比windows嚴(yán)格,顯得更安全:)不過(guò)隨著windows server的發(fā)展,linux在這優(yōu)勢(shì)不再明顯,但是windows是流行的桌面系統(tǒng),用戶群體太大,產(chǎn)生hacker有更好的環(huán)境土壤呀,呵呵……

  四,操作系統(tǒng)機(jī)制對(duì)服務(wù)的影響:

1.高并發(fā)角度:

  其實(shí)從最新的技術(shù)發(fā)展動(dòng)態(tài)來(lái)看,如果單純從技術(shù)性能機(jī)制上比,linux,windows沒(méi)有太大的差別,高并發(fā)一般取決于連接對(duì)資源的消耗方式。但是在其上方案的提供上,卻有差別。比如Nginx,Node.JS,Apache,Lighttpd,Tomcat, J2EE相關(guān)的AApplication Server這些高并發(fā)Web或應(yīng)用服務(wù)器在windows平臺(tái)上,有的是不支持。有的是運(yùn)行效率不高。同時(shí)相關(guān)的組件提供在linux平臺(tái)上有更多的支持。

  2.高吞吐量角度:

  從吞吐量上處理,基于操作系統(tǒng)可提供的最大化資源,基于各種IO的效率,包括網(wǎng)絡(luò)IO,本地文件的IO效率。

  3.緩存角度:

  緩存角度有很多方案及級(jí)別。我們先從最簡(jiǎn)單非方案級(jí)別,從IO角度分個(gè)類進(jìn)行簡(jiǎn)單描述:

  1.本地文件緩存。這個(gè)有很多方案,但如果你了解操作系統(tǒng)的VFS層之后,你會(huì)發(fā)現(xiàn),如果你對(duì)服務(wù)器業(yè)務(wù)承載的合理劃分,提高命中率以后。你可以不用任何緩存方案,利用操作系統(tǒng)的自已的文件機(jī)制,你就能處理本地文件緩存,效率一點(diǎn)也不比第三方方案差,當(dāng)然,你如果處理復(fù)雜的文件緩存的話,你要考慮目錄的文件數(shù)限制,小文件處理等,你要選擇相應(yīng)的第三方文件緩存方案。其實(shí)數(shù)據(jù)庫(kù)從其內(nèi)部訪問(wèn)機(jī)制來(lái)看,如果數(shù)據(jù)庫(kù)文件大小小于等于可用內(nèi)存總量大小,文件系統(tǒng)的緩存機(jī)制同樣可以加速數(shù)據(jù)庫(kù)的速度,你會(huì)發(fā)現(xiàn)數(shù)據(jù)是越來(lái)越快速的運(yùn)行,很奇怪是吧?這里我會(huì)在專門的系統(tǒng)方案中進(jìn)行分析。

  2.邏輯緩存:

  這個(gè)從操作系統(tǒng)層面沒(méi)有太大區(qū)別,區(qū)別在于第三方軟件對(duì)linux的支持度遠(yuǎn)大于windows平臺(tái),沒(méi)有辦法,技術(shù)歷史文化原因起更大作用:)

  五、開(kāi)發(fā)及運(yùn)維平臺(tái)方案的角度

windows平臺(tái):

  .net 它只是一個(gè)能與J2EE進(jìn)行對(duì)等對(duì)比的企業(yè)解決方案平臺(tái),因?yàn)獒槍?duì)高并發(fā),高吞吐量,海量數(shù)據(jù)的Web或其它服務(wù)應(yīng)用來(lái)說(shuō),太多優(yōu)于.net解決方案。所以我們現(xiàn)在只針對(duì)。.net與J2EE進(jìn)行對(duì)比。

  這是因?yàn)榻?jīng)過(guò)歷史檢驗(yàn)的服務(wù)系統(tǒng)及平臺(tái)方案不在windows平臺(tái)上,現(xiàn)在使用范圍最廣的平臺(tái)方案,最新發(fā)展有影響力的平臺(tái)也不在windows及.net平臺(tái)上,多是基于linux平臺(tái)上混合語(yǔ)言及平臺(tái)的整合與集成。當(dāng)然造成這個(gè)因素很復(fù)雜,涉及商業(yè)運(yùn)營(yíng),成本,技術(shù)的歷名及文化。

  1.從多系統(tǒng)整合,平臺(tái)延展性上講:

  .net顯然無(wú)法要提并論 。選擇了.net你就選定了windows操作系統(tǒng),選定了硬范圍比如在CPU上, 因?yàn)閣indows目前基本上是支持Intel,比如一些高端服務(wù)器設(shè)備windows server就無(wú)法支持,這就不方便(只是不方便沒(méi)有說(shuō)不可能:))方案集成以前大型機(jī)上的各種舊系統(tǒng),同時(shí)也無(wú)法利用一些大型機(jī)高的硬件性能,大型機(jī)上一些專門服務(wù)型操作系統(tǒng)的安全性。也選定了SQL_Server數(shù)據(jù)庫(kù),在數(shù)據(jù)庫(kù)方面,.Net 在自身的Microsoft SQL Server 上也會(huì)比其他數(shù)據(jù)庫(kù)運(yùn)行得好。J2EE是一套通用標(biāo)準(zhǔn),有諸多公司,諸多方案進(jìn)行支持,系統(tǒng)互聯(lián),還有一些舊的系統(tǒng)的整合, 這些都是.net無(wú)法相提并論的。詳細(xì)討論會(huì)在系統(tǒng)方案分析文章中進(jìn)行討論。

  2.系統(tǒng)成熟度:

  J2EE 在1999 年形成了其成熟的架構(gòu),并且到今天已經(jīng)有相當(dāng)成熟的經(jīng)過(guò)檢驗(yàn)的企業(yè)應(yīng)用系統(tǒng)。而.net發(fā)展還顯稚嫩。而且從微軟企業(yè)歷史可以看出微軟從來(lái)不是一個(gè)老牌的企業(yè)級(jí)解決方案的提供者。

  3. 工程管理角度:

  目前人力資源市場(chǎng)上的對(duì)企業(yè)解決方案人才,J2EE及以前各種Linux,Unix,服務(wù)平臺(tái)上的人才的積累是遠(yuǎn)遠(yuǎn)大于windows 操作系統(tǒng)及.net平臺(tái)的。這是快速發(fā)展的互聯(lián)網(wǎng)企業(yè)面臨的最大工程管理問(wèn)題,同時(shí)如今這幾年在移動(dòng)互聯(lián)網(wǎng)大潮下,基于linux,及類linux底層的移動(dòng)設(shè)備的瘋狂發(fā)展(如Android,IOS),不僅服務(wù)端,移動(dòng)客戶端的非windows人才與windows平臺(tái)的比例也不在同一水平線上。

  六、軟件工程角度:

  其實(shí)這個(gè)角度常常是最重要的方案選擇角度。

  1.舊系統(tǒng)的整合,

  2.多系統(tǒng)平臺(tái)的兼容,發(fā)展推動(dòng)力量,新技術(shù)的快速應(yīng)用。

  3.專業(yè)人力資源的快速配置與獲?。?/p>

  首先要考慮目前公司組織方面的人力資源的技術(shù)特點(diǎn),如果系統(tǒng)主要是基于企業(yè)級(jí)系統(tǒng),而且多是熟悉基于windows平臺(tái)的開(kāi)發(fā),那首先.net及windows server服務(wù)器。如果不是這樣的特定條件,最好選擇linux平臺(tái)上的其它穩(wěn)定匹配的方案或方案整合。

  4.商業(yè)服務(wù)方面:

  有人說(shuō)windows雖然付費(fèi)但提供強(qiáng)大技術(shù)支持,真的是這樣嗎?一般情況下,得到的支持是兩個(gè)字“重啟” ,我有一些朋友在微軟做開(kāi)發(fā)或做技術(shù)支持,聊下來(lái)的結(jié)果是,對(duì)一些桌面應(yīng)用的支持還算到位,當(dāng)然里面包括最多的一臺(tái)詞就是“先重啟試試”,慢了要重啟,Crash了要重啟,不能用一些東西了,要重啟。 對(duì)于服務(wù)器支持而言多是感嘆,但在linux社區(qū)上你倒反而可以得到更多有建設(shè)性的幫助。當(dāng)然這個(gè)角度純是個(gè)人戲說(shuō),人人有自己的感受。

  ----未完----

責(zé)任編輯:黃丹 來(lái)源: 博客園
相關(guān)推薦

2013-05-20 13:50:05

服務(wù)器操作系統(tǒng)

2015-09-11 15:25:45

LinuxCon服務(wù)器操作系統(tǒng)

2009-03-01 09:59:00

2018-04-28 10:35:01

服務(wù)器Windows操作系統(tǒng)

2018-03-08 15:20:33

服務(wù)器操作系統(tǒng)企業(yè)

2014-08-06 00:38:12

CentOS服務(wù)器操作系統(tǒng)

2009-08-30 14:57:59

UNIX服務(wù)器作系統(tǒng)UNIX

2010-04-08 17:43:44

Unix操作系統(tǒng)

2010-02-23 17:14:25

Ubuntu Linu

2011-12-02 10:05:07

2012-06-08 09:44:09

虛擬化

2011-12-07 09:38:56

2009-12-16 16:48:35

Linux操作系統(tǒng)

2018-09-26 14:42:48

操作系統(tǒng)Web服務(wù)器

2010-04-15 13:26:12

Unix操作系統(tǒng)

2019-12-17 18:04:09

操作系統(tǒng)Linux中央處理器

2010-04-30 15:42:50

Windows SerAD功能

2009-02-10 16:11:00

IIS微軟操作系統(tǒng)Web服務(wù)器

2010-04-08 15:13:32

2009-02-27 16:58:00

Unix服務(wù)器操作系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)