成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

從操作系統機制淺談服務器平臺的選擇

系統
在做一個系統分析及方案架構選擇時,很多人常會說我選擇Linux作為服務器是當然,為什么當然呢?為什么不選擇windows server呢?本文就操作系統機制來淺析一下這個問題。

  在做一個系統分析及方案架構選擇時,很多人常會說我選擇Linux作為服務器是當然,為什么當然呢?為什么不選擇windows server呢?我試著從簡單個人的角度去理解描述它。個人淺見,拋磚引玉一下。

  先從網上抄點市場數據吧(未經證實),當然這些數據最終形成,不一定完全是純技術的原因,更多是商業市場方面的原因,說簡單點就是出于利益等原因,但我們做過簡單的用戶,我們只能接受適應,當然,有時還能發發牢騷。

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

一、從性能調優方來考慮:

  對高并發及海量數據的服務平臺,性能都是不斷優化調整出來的。而不是什么的高超的架構設計就能一步到位的。

  • Linux:遠遠勝出,因為linux是方便調優的,方便定制,可以完全針對機器的配置設置優化,也可針對你所要創建的服務特點來優化。
  • Windows:首先內在支持消耗一定的資源比如在Windows下,gui是在內核態運行的(參見Windows Internals)你是無法不要它的,呵呵,其實是對于常用的系統操作的支持而提供過多,不容易調整的功能及模塊。當然如果你是微軟的高級的開發人員,你完全可以做到非常到全的系統調優,但可惜的,這些人都不在你的公司,同時你從人力資源市場上批量獲得此類人才的可能性為零。

  二、IO

  我們這里不討論一般的IO模型,我們只討論一些操作系統中面向高并發高吞吐量的所用的IO模型進行討論

  Linux 的IO模型為:

  1.select /poll

  • 基本上就是輪詢機制來查看每個IO句柄有無讀寫數據,不足很明顯:
  • 1024句柄限制,當然有辦法進行調整。
  • 用戶空間的輪詢機制消耗過多不必要的資源,消耗會隨著IO句柄的增加而增加,特別對長鏈接應用的負面影響是最大的。

  2.epoll:

  a.機制:

  基于“偽”AIO(異步IO).當有讀寫狀態時,事件通知用戶級。以內核態實現,以達到高效及節省資源。

  b.優點:

  • 支持一個進程打開大數目的socket描述符(FD)
  • IO效率不隨FD數目增加而線性下降
  • 使用mmap加速內核與用戶空間的消息傳遞
  • 內核微調提供的優化可能性及靈活性

  3.本地IO角度

windows IO

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

a.機制:

  重疊IO支持:其實就是AIO(異步IO),說白話一點就是從內核級別在有數據讀寫可能時通過回調函數或事件來通知用戶空間進行數據處理。

  對線程進行管理:

  操作返回的方式:一般操作完成后要通知程序進行后續處理。但寫操作可以不通知用戶,此時如果用戶寫操作不能馬上完成,寫操作的相關數據會被暫存到非交換緩沖區中,在操作完成的時候,系統會自動釋放緩沖區,此時發起完寫操作,使用的內存就可以釋放了。但如果占用非交換緩沖太多會使系統停止響應。

  三、進程,線程:

  這個不做詳細分析,太多關于這方面的資料:這里我們只關注幾點:

  1.簡單機制:

  Windows:提供進程與線程接口,基于線程進行調度,進程提供資源共享空間。

  Linux:內核只提供進程,線程只是用戶級別的封裝接口,以進程方式實現線程,只是一個主進程以子進程方式創建了線程這些子進程共享一些資源罷了。

  2.對比:

  windows下的進程資源消耗大于linux 的進程。

3.安全機制:

  歷史上看linux用戶管理比windows嚴格,顯得更安全:)不過隨著windows server的發展,linux在這優勢不再明顯,但是windows是流行的桌面系統,用戶群體太大,產生hacker有更好的環境土壤呀,呵呵……

  四,操作系統機制對服務的影響:

1.高并發角度:

  其實從最新的技術發展動態來看,如果單純從技術性能機制上比,linux,windows沒有太大的差別,高并發一般取決于連接對資源的消耗方式。但是在其上方案的提供上,卻有差別。比如Nginx,Node.JS,Apache,Lighttpd,Tomcat, J2EE相關的AApplication Server這些高并發Web或應用服務器在windows平臺上,有的是不支持。有的是運行效率不高。同時相關的組件提供在linux平臺上有更多的支持。

  2.高吞吐量角度:

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

  3.緩存角度:

  緩存角度有很多方案及級別。我們先從最簡單非方案級別,從IO角度分個類進行簡單描述:

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

  2.邏輯緩存:

  這個從操作系統層面沒有太大區別,區別在于第三方軟件對linux的支持度遠大于windows平臺,沒有辦法,技術歷史文化原因起更大作用:)

  五、開發及運維平臺方案的角度

windows平臺:

  .net 它只是一個能與J2EE進行對等對比的企業解決方案平臺,因為針對高并發,高吞吐量,海量數據的Web或其它服務應用來說,太多優于.net解決方案。所以我們現在只針對。.net與J2EE進行對比。

  這是因為經過歷史檢驗的服務系統及平臺方案不在windows平臺上,現在使用范圍最廣的平臺方案,最新發展有影響力的平臺也不在windows及.net平臺上,多是基于linux平臺上混合語言及平臺的整合與集成。當然造成這個因素很復雜,涉及商業運營,成本,技術的歷名及文化。

  1.從多系統整合,平臺延展性上講:

  .net顯然無法要提并論 。選擇了.net你就選定了windows操作系統,選定了硬范圍比如在CPU上, 因為windows目前基本上是支持Intel,比如一些高端服務器設備windows server就無法支持,這就不方便(只是不方便沒有說不可能:))方案集成以前大型機上的各種舊系統,同時也無法利用一些大型機高的硬件性能,大型機上一些專門服務型操作系統的安全性。也選定了SQL_Server數據庫,在數據庫方面,.Net 在自身的Microsoft SQL Server 上也會比其他數據庫運行得好。J2EE是一套通用標準,有諸多公司,諸多方案進行支持,系統互聯,還有一些舊的系統的整合, 這些都是.net無法相提并論的。詳細討論會在系統方案分析文章中進行討論。

  2.系統成熟度:

  J2EE 在1999 年形成了其成熟的架構,并且到今天已經有相當成熟的經過檢驗的企業應用系統。而.net發展還顯稚嫩。而且從微軟企業歷史可以看出微軟從來不是一個老牌的企業級解決方案的提供者。

  3. 工程管理角度:

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

  六、軟件工程角度:

  其實這個角度常常是最重要的方案選擇角度。

  1.舊系統的整合,

  2.多系統平臺的兼容,發展推動力量,新技術的快速應用。

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

  首先要考慮目前公司組織方面的人力資源的技術特點,如果系統主要是基于企業級系統,而且多是熟悉基于windows平臺的開發,那首先.net及windows server服務器。如果不是這樣的特定條件,最好選擇linux平臺上的其它穩定匹配的方案或方案整合。

  4.商業服務方面:

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

  ----未完----

責任編輯:黃丹 來源: 博客園
相關推薦

2013-05-20 13:50:05

服務器操作系統

2015-09-11 15:25:45

LinuxCon服務器操作系統

2009-03-01 09:59:00

2018-03-08 15:20:33

服務器操作系統企業

2018-04-28 10:35:01

服務器Windows操作系統

2014-08-06 00:38:12

CentOS服務器操作系統

2009-08-30 14:57:59

UNIX服務器作系統UNIX

2010-04-08 17:43:44

Unix操作系統

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

2018-09-26 14:42:48

操作系統Web服務器

2009-12-16 16:48:35

Linux操作系統

2010-04-15 13:26:12

Unix操作系統

2019-12-17 18:04:09

操作系統Linux中央處理器

2010-04-30 15:42:50

Windows SerAD功能

2009-02-10 16:11:00

IIS微軟操作系統Web服務器

2010-04-08 15:13:32

2009-02-27 16:58:00

Unix服務器操作系統
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美一区二区三区久久精品 | 久久久久久亚洲精品 | 国产一区久久久 | 北条麻妃99精品青青久久主播 | 在线视频日韩 | 国产精品久久久久久久岛一牛影视 | 一区二区三区免费在线观看 | 国产精品毛片一区二区三区 | 精品九九在线 | 亚洲精品91| 91视频国产一区 | 午夜在线免费观看视频 | h片在线看 | 欧洲毛片 | 成人免费视频网址 | 亚洲欧美国产精品久久 | 久久国产精品视频免费看 | 久久av在线播放 | 日韩视频在线观看中文字幕 | 在线观看国产视频 | av永久| 亚洲精品欧美 | 91在线区| 天天干天天干 | 国产精品国产精品国产专区不蜜 | 久久天天躁狠狠躁夜夜躁2014 | 久久成人国产精品 | 久久精品免费一区二区 | 亚洲高清在线 | 日本天天操 | 四虎成人免费电影 | 国产精品视频久久久 | 国产精品18毛片一区二区 | 91视频进入 | 久精品久久 | 国产免费一区二区三区 | 日本一区二区在线视频 | 一区二区三区视频在线观看 | 免费一区二区三区 | 亚洲一区久久久 | 欧美中文字幕一区二区三区亚洲 |