日韩欧美国产极速不卡一区,国产手机视频在线观看尤物,国产亚洲欧美日韩蜜芽一区,亚洲精品国产免费,亚洲二区三区无码中文,A大片亚洲AV无码一区二区三区,日韩国语国产无码123

您好,歡迎來到維庫電子市場網(wǎng) 登錄 | 免費(fèi)注冊

分布式系�(tǒng)
閱讀�45580時間�2011-08-24 10:00:43

  分布式系�(tǒng)是個由多個互相連接的處理資源組成的計算�(jī)系統(tǒng),它們在整個系�(tǒng)的控制下�(xié)同執(zhí)行同一個任�(wù),最少依賴于集中的程�、數(shù)�(jù)或硬�。這些資源可以是地理上相鄰的,也可以是在地理上分散�。分布式系統(tǒng)隱含的共同特征是:場地分布、數(shù)�(jù)分布、硬件平臺多樣化、操作系�(tǒng)多樣�、應(yīng)用平臺多樣化�

定義

  �(dāng)討論分布式系�(tǒng)�,我們面臨許多以下這些形容詞所描述� 同類型: 分布式的、刪�(luò)�、并行的、并�(fā)的和分散�。分布式處理是一個相對較新的�(lǐng)域,所以還沒有‘致的定�。與順序計算相比、并行的、并�(fā)的和分布式的計算包括多個PE問的集體�(xié)同動�。這些�(shù)語在范圍一卜相互覆蓋,有時也交換使��

  *“并行的”意味著從一個單一控制線程對數(shù)�(jù)集的鎖步(1ockst ep)動作�

  在并行計算機(jī)級別�� 指令流多�(shù)�(jù)�(SIMD)計算�(jī)就是一個使用多個數(shù)�(jù)處理單元在許多數(shù)�(jù)�(xiàng)上同時�(jìn)行相同或相似操作的例��

  *“并�(fā)的”意味著某些動作可以以任意次序執(zhí)�。例�,在史島級別,卜和在多指令流多數(shù)�(jù)�(MIMD)并行計算�(jī)上�(jìn)行部分獨(dú)立的操作�

  *“分布式的”意味著計算的成本或性能取決于數(shù)�(jù)和控制的通信�

  如果 個系�(tǒng)的部件局限在一個地方,它就是集中式的:如果它的部件在不同地l20�,部件之間要么不存在或僅存在有限的合�,要么存在緊密的合作,它是分散式的�

  �(dāng)一個分散式系統(tǒng)不存在或僅存在有限的合作�,它就被稱作�(wǎng)�(luò)的;否則它就被稱作分布式�,表示在不同地方的部件之間存在緊密的合作。在給出分布式系�(tǒng)具體定義的模型中,分布式系統(tǒng)可以用硬件、控�、數(shù)�(jù)這三個維度加以檢�(yàn)�

  分布式系�(tǒng)=分布式硬�+分布式控�+分布式數(shù)�(jù)

  分布式系�(tǒng)有很多不同的定義,但其中沒有一個是令人滿意或者能夠被所有人接受的。介紹分布式系統(tǒng),對它的特點(diǎn)的下列大致的描述足夠了:

  “一個分布式系統(tǒng)是一些獨(dú)立的計算�(jī)的集合,但是對這個系�(tǒng)的用戶來�,系�(tǒng)就象一臺計算機(jī)一�。�

  這個定義有兩個方面的含義�,從硬件角度來講,各個計算機(jī)都是自治�;第�,從軟件角度來講,用戶將整個系�(tǒng)看作是一臺計算機(jī)。這兩者都是必需�,缺一不可。在簡要介紹有關(guān)硬件、軟件的一些背景材料之�,我們將再回到這兩�(diǎn)上來�(jìn)行討��

  由于給出分布式系�(tǒng)的一些實(shí)例可能要比�(jìn)一步的深入研究定義更有幫助,下面就給出一些分布式系統(tǒng)的例�。個例�,設(shè)想一個大�(xué)或公司部門�(nèi)的工作站�(wǎng)�(luò)。除了每個用戶的個人工作站外,機(jī)房中可能還有一個共享的處理�(jī)�(pool of processor),這些處理�(jī)并沒有分配給特定的用戶,而是在需要的時候�(jìn)行動�(tài)分配。這樣的系�(tǒng)可能會有一個單一的文件系�(tǒng),其中所有的文件可以從所有的計算�(jī)上以相同的方式并且使用相同的路徑名存取。另�,當(dāng)一個用戶輸入一條命令時,系�(tǒng)能夠找到一個的地方�(zhí)行該命令。這可能是在用戶自己的工作站上,可能是在別人空閑的工作站上,也可能在機(jī)房里一個未分配的處理機(jī)�。如果這個從系統(tǒng)整體上看以及�(yùn)行起來看都像一個典型的單處理機(jī)分時系統(tǒng),那么就可以稱它為一個分布式系統(tǒng)�

  第二個例�,考慮一個到處是�(jī)器人的工�。每個機(jī)器人都有一臺功能強(qiáng)大的計算�(jī)用于處理視覺、�(jìn)行計劃、通信以及其它任務(wù)。當(dāng)裝配線上的某個機(jī)器人�(fā)�(xiàn)一個它要安裝的零件有缺陷時,它就要求該零件供應(yīng)部門的另一個機(jī)器人給它送一個替代品。如果所有的�(jī)器人都如同連接于同一中心計算�(jī)上的外設(shè)一樣工作,而且系統(tǒng)的程序也是以這種方式�(jìn)行編制的�,那么它也是一種分布式系統(tǒng)�

  一個例子是一個在世界各地有數(shù)百個分支機(jī)�(gòu)的大銀行。每個分支機(jī)�(gòu)有一臺主計算�(jī)存儲�(dāng)?shù)貛つ亢吞幚肀镜厥�?wù)。此外,每臺計算�(jī)還能通過串口服務(wù)器與其他分支�(jī)�(gòu)的計算機(jī)及總部的計算�(jī)對話。如果交易不管顧客和帳目在哪里都能夠�(jìn)�,而且用戶也不會感到當(dāng)前這個系�(tǒng)與被替代的老的集中式主�(jī)有何不同,那么這個系�(tǒng)也被�(rèn)為是一個分布式系統(tǒng)�

�(yōu)�

  分布式系�(tǒng)與集中式系統(tǒng)相比較而言的優(yōu)�(diǎn)

  系統(tǒng)傾向于分布式�(fā)展潮流的真正�(qū)動力是經(jīng)�(jì)�25年前,計算機(jī)�(quán)威和評論家Herb Grosch指出CPU的計算能力與它的價格的平方成正比,后來成為Grosch定理。也就是說如果你付出兩倍的價錢,就能獲得四倍的性能。這一論斷與當(dāng)時的大型�(jī)技�(shù)非常吻合,因而使得許多機(jī)�(gòu)都盡其所能購買的單個大型機(jī)�

  隨著微處理機(jī)技�(shù)的發(fā)�,Grosch定理不再適用�?,F(xiàn)在人們只需花幾百美元就能買到一個CPU芯片,這個芯片每秒鐘�(zhí)行的指令�80年代的大型機(jī)的處理機(jī)每秒鐘所�(zhí)行的指令還多。如果你愿意付出兩倍的價錢,將得到同樣的CPU,但它卻以更高的時鐘速率�(yùn)�。因此,最節(jié)約成本的辦法通常是在一個系�(tǒng)中使用集中在一起的大量的廉價CPU。所以,傾向于分布式系統(tǒng)的主要原因是它可以潛在地得到比單個的大型集中式系�(tǒng)好得多的性能價格�。實(shí)際上,分布式系統(tǒng)是通過較低廉的價格來實(shí)�(xiàn)相似的性能的�

  與這一觀�(diǎn)稍有不同的是,我們發(fā)�(xiàn)微處理機(jī)的集合不僅能�(chǎn)生比單個大型主�(jī)更好的性能價格�,而且還能�(chǎn)生單個大型主�(jī)無論如何都不能達(dá)到的性能。例�,按目前的技�(shù),我們能夠用10,000個現(xiàn)代CPU芯片組成一個系�(tǒng),每個CPU芯片�50 MIPS(每秒百萬指令)的速率�(yùn)�,那么整個系�(tǒng)的性能就是500,000 MIPS。而如果單個處理機(jī)(即CPU)要�(dá)到這一性能,就必需�2×10-12 秒(2 微微秒,0.002納秒)的時間�(nèi)�(zhí)行一條指�,然而沒有一個現(xiàn)存的計算�(jī)能接近這個速度,從理論上和工程上考慮都認(rèn)為能�(dá)到這一要求的計算機(jī)都是不可能存在的。理論上,愛因斯坦的相對論指出光的傳播速度最快,它能�2 微微秒內(nèi)傳播0.6毫米。實(shí)際上,一個包含于邊長�0.6 毫米大小的立方體�(nèi)的具有上面所說的計算速度的計算機(jī)�(chǎn)生大量的熱量就能將它自己立即熔掉。所�,無論是要以低價格獲得普通的性能還是要以較高的價格獲得極高的性能,分布式系統(tǒng)都能夠滿��

  另一方面,一些作者對分布式系�(tǒng)和并行系�(tǒng)�(jìn)行了區(qū)分。他們認(rèn)為分布式系統(tǒng)是設(shè)計用來允許眾多用戶一起工作的,而并行系�(tǒng)的目�(biāo)就是以最快的速度完成一個任�(wù),就像我們的速度�500,000 MIPS的計算機(jī)那樣。我們認(rèn)�,上述的區(qū)別是難以成立的,�?yàn)�?shí)際上這兩個設(shè)計領(lǐng)域是�(tǒng)一�。我們更愿意在最廣泛的意義上使用“分布式系統(tǒng)”一詞來表示任何一個有多個互連的CPU�(xié)同工作的系統(tǒng)�

  建立分布式系�(tǒng)的另一原因在于一些應(yīng)用本身是分布式的。一個超級市場連鎖店可能有許多分店,每個商店都需要采購當(dāng)?shù)厣a(chǎn)的商品(可能來自本地的農(nóng)場)、�(jìn)行本地銷售,或者要對本地的哪些蔬菜因時間太長或已經(jīng)腐爛而必須扔掉作出決�。因�,每個商店的本地計算�(jī)能明了存貨清單是有意義的,而不是集中于公司總部。畢�,大多數(shù)查詢和更新都是在本地�(jìn)行的。然�,連鎖超級市場的高層管理者也會不時地想要了解他們目前還有多少甘�(lán)。實(shí)�(xiàn)這一目標(biāo)的一種途徑就是將整個系�(tǒng)建設(shè)成對于應(yīng)用程序來說就像一臺計算機(jī)一�,但是在�(shí)�(xiàn)上它是分布的,像我們前面所描述的一個商店有一臺機(jī)�。這就是一個商�(yè)分布式系�(tǒng)�

  另一種固有的分布式系�(tǒng)是通常被稱為計算機(jī)支持下的�(xié)同工作系�(tǒng)(CSCW,Computer Supported Cooperative Work�。在這個系�(tǒng)�,一組相互之間在物理上距離較�(yuǎn)的人員可以一起�(jìn)行工�,例�,寫出同一份報�。就計算�(jī)工業(yè)的長期發(fā)展趨勢來�,人們可以很容易的想像出一個全新領(lǐng)�--計算�(jī)支持的協(xié)同游戲(CSCG:Computer Supported Cooperative Games�。在這個游戲中,不在同一地方的游戲者可以實(shí)時的玩游戲。你可以想像,在一個多維迷宮中玩電子捉迷藏,甚至是一起玩一場電子空�(zhàn),每個人操縱自己的本地飛行模擬器去試著擊落別的游戲�,每個游戲者的屏幕上都顯示出其飛機(jī)外的情況,包括其它飛入它的視野的飛機(jī)�

  同集中式系統(tǒng)相比�,分布式系統(tǒng)的另一個潛在的�(yōu)勢在于它的高可靠�。通過把工作負(fù)載分散到眾多的機(jī)器上,單個芯片故障最多只會使一臺機(jī)器停�(jī),而其它機(jī)器不會受任何影響。理想條件下,某一時刻如果�5%的計算機(jī)出現(xiàn)故障,系�(tǒng)將仍能繼�(xù)工作,只不過損失5%的性能。對于關(guān)鍵性的�(yīng)�,如核反�(yīng)堆或飛機(jī)的控制系�(tǒng),采用分布式系統(tǒng)來實(shí)�(xiàn)主要是考慮到它可以獲得高可靠��

  ,漸增式的增長方式也是分布式系統(tǒng)�(yōu)于集中式系統(tǒng)的一個潛在的重要的原�。通常,一個公司會買一臺大型主�(jī)來完成所有的工作。而當(dāng)公司繁榮�(kuò)�、工作量就會增大,當(dāng)其增大到某一程度�,這個主�(jī)就不能再勝任�。僅有的解決辦法是要么用更大型的�(jī)器(如果有的話)代替�(xiàn)有的大型主機(jī),要么再增加一臺大型主�(jī)。這兩種作法都會引起公司運(yùn)�(zhuǎn)混亂。相比較之下,如果采用分布式系統(tǒng),僅給系�(tǒng)增加一些處理機(jī)就可能解決這個問�,而且這也允許系統(tǒng)在需求增長的時候逐漸�(jìn)行擴(kuò)�。表1-1中總�(jié)了以上這些�(yōu)�(diǎn)�

�(xiàng)�

   

�(jīng)�(jì)

微處理機(jī)提供了比大型主機(jī)更好的性能價格�

速度

分布式系�(tǒng)總的計算能力比單個大型主�(jī)更強(qiáng)

固有的分布�

一些應(yīng)用涉及到空間上分散的�(jī)�

可靠�

如果一個機(jī)器崩�,整個系�(tǒng)還可以運(yùn)�(zhuǎn)

漸增

計算能力可以逐漸有所增加

  從長�(yuǎn)的角度來�,主要的�(qū)動力將是大量個人計算�(jī)的存在和人們共同工作與信息共享的需要,這種信息共享必需是以一種方便的形式�(jìn)行的,而不受地理或人員、數(shù)�(jù),機(jī)器的物理分布的影��

  分布式系�(tǒng)與獨(dú)立PC�(jī)相比較的�(yōu)�(diǎn)

  既然使用微處理機(jī)是一種節(jié)省開支的辦法,那么為什么不給每個人一臺個人計算�(jī),讓他們各自獨(dú)立地工作呢?一�,許多用戶需要共享數(shù)�(jù)。例�,機(jī)票預(yù)訂處的工作人員需要訪問存儲航班以及現(xiàn)有座位信息的主數(shù)�(jù)�。假如給每個工作人員都備份整個數(shù)�(jù)庫,那么在實(shí)際中這是無法工作�,因?yàn)闆]有人知道其他工作人員已經(jīng)賣出了哪些座位。共享的�(shù)�(jù)是上例和許多其它�(yīng)用的基礎(chǔ),所以計算機(jī)間必須互�。而計算機(jī)互連就�(chǎn)生了分布式系�(tǒng)�

  共享并不只是僅僅涉及�(shù)�(jù)。昂貴的外設(shè),例如彩色激光打印機(jī),照相排版機(jī)以及大型存儲�(shè)備(如自動光盤點(diǎn)唱機(jī))都是共享資源�

  把一組孤立的計算�(jī)連成一個分布式系統(tǒng)的第三個原因是它可以增�(qiáng)人與人之間的溝�,電子郵件比信件、電話和傳真有更多的誘人之處。它比信件快的多,不像電話需要兩人同時都在,也不像傳�,它所�(chǎn)生的文件可在計算�(jī)中�(jìn)行編輯、重排和存儲,也可以由文本處理程序來處理�

  ,分布式系統(tǒng)可能比給每個用戶一個獨(dú)立的計算�(jī)更靈活。盡管一種可能的模式是給每個人一臺個人計算�(jī)并把它們通過LAN�(lián)在一�,但這種方式并不是的。另外還存在一種模式是將個人計算�(jī)和共享計算機(jī)混合連接在一起(這些�(jī)器的型號可能并不完全相同�,使工作能夠在最合適的計算機(jī)上完�,而并不總是在自己的計算機(jī)上完�。這種方式可以使工作負(fù)荷能更有效地在計算機(jī)系統(tǒng)中�(jìn)行分配。系�(tǒng)中某些計算機(jī)的失效也可以通過使其工作在其它計算機(jī)上�(jìn)行而得到補(bǔ)�。表1-2總結(jié)了以上所介紹的各�(diǎn)� 

�(xiàng)�

 

�(shù)�(jù)共享

允許多個用戶訪問一個公共的�(shù)�(jù)�

�(shè)備共�

允許多個用戶共享昂貴的外圍�(shè)�(如彩色打印機(jī))

通信

使得人們之間的通信更加容易,如通過電子郵件

靈活�

用最有效的方式將工作�(fù)荷分配到可用的機(jī)器上

缺點(diǎn)

  盡管分布式系�(tǒng)有許多優(yōu)�(diǎn),但也有缺點(diǎn)。本節(jié)就將指出其中的一些缺�(diǎn)。我們前面已�(jīng)提到了最棘手的問題:軟件。就目前的技�(shù)�(fā)展水平,我們在�(shè)�、實(shí)�(xiàn)及使用分布式系統(tǒng)上都沒有太多的經(jīng)�(yàn)。什么樣的操作系�(tǒng)、程序設(shè)計語言和應(yīng)用適合這一系統(tǒng)呢?用戶對分布式系統(tǒng)中分布式處理又應(yīng)該了解多少呢?系�(tǒng)�(yīng)�(dāng)做多少而用戶又�(yīng)�(dāng)做多少呢?專家們的觀�(diǎn)不一(這并不是�?yàn)閷<覀兣c眾不�,而是�?yàn)閷τ诜植际较到y(tǒng)他們也很少涉及�。隨著更多的研究的�(jìn)�,這些問題將會逐漸減少。但是目前我們不�(yīng)該低估這個問��

  第二個潛在的問題是通信�(wǎng)�(luò)。由于它會損失信息,所以就需要專門的軟件�(jìn)行恢�(fù)。同時,�(wǎng)�(luò)還會�(chǎn)生過�。當(dāng)�(wǎng)�(luò)�(fù)載趨于飽和時,必須對它�(jìn)行改造替換或加入另外一個網(wǎng)�(luò)�(kuò)�。在這兩種情況下,一個或多個建筑中的某些部分必須花�(fèi)很高的費(fèi)用�(jìn)行重新布�,或者更換網(wǎng)�(luò)接口板(例如用光纖)。一旦系�(tǒng)依賴于網(wǎng)�(luò),那么網(wǎng)�(luò)的信息丟失或飽和將會抵消我們通過建立分布式系�(tǒng)所獲得的大部分�(yōu)勀�

  ,上面我們作為優(yōu)�(diǎn)來描述的�(shù)�(jù)易于共享性也是具有兩面性的。如果人們能夠很方便地存取整個系�(tǒng)中的�(shù)�(jù),那么他們同樣也能很方便地存取與他們無�(guān)的數(shù)�(jù)。換句話�,我們經(jīng)常要考慮系統(tǒng)的安全性問題。通常,對必須保密的數(shù)�(jù),使用一個專用的、不與其它任何機(jī)器相連的孤立的個人計算�(jī)�(jìn)行存儲的方法更可�。而且這個計算機(jī)被保存在一個上鎖的十分安全的房間中,與這臺計算相配套的所有軟盤都存放在這個房間中的一個保險箱�。分布式系統(tǒng)的缺�(diǎn)如表1-3所��

�(xiàng)�

 

軟件

目前為分布式系統(tǒng)開發(fā)的軟件還很少

�(wǎng)�(luò)

�(wǎng)�(luò)可能飽和和引起其它的問題

安全

容易造成對保密數(shù)�(jù)的訪�

  � 1-3. 分布式系�(tǒng)的缺�(diǎn)

  盡管存在這些潛在的問�,許多人還是�(rèn)為分布式系統(tǒng)的優(yōu)�(diǎn)多于缺點(diǎn),并且普遍認(rèn)為分布式系統(tǒng)在未來幾年中會越來越重要。實(shí)際上,在幾年之內(nèi)許多�(jī)�(gòu)會將他們的大多�(shù)計算�(jī)連接到大型分布式系統(tǒng)�,為用戶提供更好、更廉價和更方便的服�(wù)。而在十年之后,中型或大型商業(yè)或其它機(jī)�(gòu)中可能將不再存在一臺孤立的計算�(jī)��

�(yīng)�

  分布式系�(tǒng)被用在許多不同類型的�(yīng)用中。以下我們列出了一些應(yīng)�。對這些�(yīng)用而言,使用分布式系統(tǒng)要比其他體系�(jié)�(gòu)如處理機(jī)和共享存儲器多處理機(jī)更優(yōu)越:

  并行和高性能�(yīng)�

  原則上,并行�(yīng)用也可以在共享存儲器多處理機(jī)上運(yùn)�,但共享存儲器系�(tǒng)不能很好地擴(kuò)大規(guī)模以包括大量的處理機(jī)。HPCC(高性能計算和通信)�(yīng)用一般需要一個可伸縮的設(shè)�,這種�(shè)計取決于分布式處��

  容錯�(yīng)�

  �?yàn)槊總€P E是自治的,所以分布式系統(tǒng)更加可靠。一個單元或資源(軟件或硬�)的故障不影響其他資源的正常功��

  固有的分布式�(yīng)�

  許多�(yīng)用是固有分布式的。這些�(yīng)用是突發(fā)模式(burstmode)而非批量模式(bulk mode)。這方面的�(shí)例有事務(wù)處理和Internet Javad,程序�

  這些�(yīng)用的性能取決于吞吐量(事務(wù)響應(yīng)時陽J或每秒完成的事務(wù)�(shù))而不是一般多處理�(jī)所用的�(zhí)行時��

  對于一組用戶而言� 分布式系�(tǒng)有一個特別的�(yīng)用稱為計算機(jī)支持的協(xié)同工�(computer supported Cooperati veworking,CSCW)或群�(groupware)� 支持用戶�(xié)同工作。另一個應(yīng)用是分布式會�� 即通過物理的分布式�(wǎng)�(luò)�(jìn)行電子會�。同�,多媒體�(yuǎn)程教�(xué)也是一個類似的�(yīng)�。由于在不同的平臺上如:Pc、工作站、局域網(wǎng)和廣域網(wǎng)上可獲得非常多樣的應(yīng)�,用戶希望能超出他fliP c的限制以獲得更廣泛的特十牛、功能和性能。不同網(wǎng)�(luò)和環(huán)�(包括分布式系�(tǒng)�(huán)�)下的q 操作性變得越來越重要。為了達(dá)到互操作性,用戶需要一個標(biāo)�(zhǔn)的分布式計算�(huán)�,在這個環(huán)境里,所有系�(tǒng)和資源都可用�

  DCE (分布式計算環(huán)�)是OSF (開放系統(tǒng)基金�)開發(fā)的分布式計算技�(shù)的工�(yè)�(biāo)�(zhǔn)�。它提供保護(hù)和控制對�(shù)�(jù)訪問的安全服�(wù)、容易尋找分布式資源的名字服�(wù)、以及高度可伸縮的模型用于組織極為分散的用戶、服�(wù)和數(shù)�(jù)。D C E可在所有主要的計算平臺上運(yùn)行, 并設(shè)計成支持異型硬件和軟件環(huán)境下的分布式�(yīng)��

  DCE已經(jīng)被包括TRANSVARL在內(nèi)的一些r一商實(shí)�(xiàn)。TRANSVARL是最早的多廠商組(multi vendor team)的成員之一,它提出的建議已成為DC E體系�(jié)�(gòu)的基�(chǔ)。在中可以找到利用DCE開發(fā)分布式應(yīng)用的指南。具有標(biāo)�(zhǔn)接口和協(xié)議的系統(tǒng)也叫做開放系�(tǒng)。一些其它標(biāo)�(zhǔn)基于一個特別的模型,比如CORBA (公用對象請求代理程序體系�(jié)�(gòu)),它是由OMG (對象管理�)和多計算�(jī)廠商�(lián)盟開�(fā)的一個標(biāo)�(zhǔn)。CORBA使用面向?qū)ο竽P�?shí)�(xiàn)分布式系�(tǒng)中的透明服務(wù)請求。工�(yè)界有自己的標(biāo)�(zhǔn),比如微軟的分布式構(gòu)件對象模�(DCOM)和Sun Microsystem公司的Java Beans�

測試

  在測試執(zhí)行過程中,對測試�(jié)果的分析是一個需要�(jìn)行深入思考的重點(diǎn)問題。分布式系統(tǒng)測試的重�(diǎn)在于對后端服�(wù)器集群的測試,而判定系�(tǒng)中是否存在Bug則是我們需要解決的重要問題。那么應(yīng)該如何確定是否存在Bug��

  對于測試�(jié)果的分析,我們通常觀察下面幾種情��

  觀察前端應(yīng)用的返回�(jié)果。這里需要分兩種情況來考慮�,按照前端應(yīng)用業(yè)�(wù)功能�(diǎn)及流程�(jìn)行操�,觀察返回結(jié)果是否符合業(yè)�(wù)方的需求預(yù)�;第二,操作后端的服�(wù)器(通常是重�、宕�(jī)、斷�(wǎng)等操作),觀察前端應(yīng)用的返回�(jié)果是否符合系�(tǒng)的設(shè)計需��

  分析服務(wù)器日志。在功能測試過程�,當(dāng)我們在啟動服務(wù)器的時候,需要將日志級別定義為Debug級別(級別)。這樣做的主要目的是為了能便于測試工程師來分析日志和定位問�。為了能更好地定位問題,常常需要在服務(wù)器程序代碼中�(jìn)行日志打�,把程序中的一些重要數(shù)�(jù)通過日志的方式展�(xiàn)出來。通常情況�,我們需要對日志的格式�(jìn)行約�,在日志行中增加一些關(guān)鍵字來�(jìn)行分�,這將便于測試工程師�(jìn)行日志分�,也有利于開展分布式系統(tǒng)的自動化測試。另�,值得注意的是,我們盡可能地將打樁代碼放在Debug代碼�,避免影響系�(tǒng)代碼,引入新問題�

  分析操作系統(tǒng)的一些重要信�。我們測試的分布式系�(tǒng)絕大多數(shù)是基于Linux操作系統(tǒng)開發(fā)�,在測試的過程中,除了詳�(xì)分析程序日志以外,還需要對操作系統(tǒng)的一些重要數(shù)�(jù)信息�(jìn)行分析,從而來診斷服務(wù)器程序是否存在異�。以Linux操作系統(tǒng)為例,我們常常會使用top命令、netstat命令及sar命令來查看操作系�(tǒng)的一些數(shù)�(jù)信息。例�,可以通過netstat命令檢查服務(wù)器程序是否正確地�(jiān)聽了指定的端口等�

  借助其他分析工具。例�,如何判斷服�(wù)器程序是否產(chǎn)生了�(nèi)存泄�?通常需要借助于內(nèi)存檢測工具來�(jìn)行分�。在Linux�(huán)境下,我們常用Valgrind來�(jìn)行內(nèi)存檢�。這是一款非常好�、功能強(qiáng)大的分析工具,可以幫助測試或者開�(fā)工程師快速發(fā)�(xiàn)很多隱藏的程序Bug,尤其是在內(nèi)存檢測方面(同時它還具有很多其他的功�,讀者可以自己查看官�(wǎng)中的使用手冊��

  分布式系�(tǒng)壓力測試與性能測試

  對于分布式系�(tǒng)而言,壓力測試和性能測試非常重要。在�(jìn)行壓力測試和性能測試的時候,可能會碰到下面一些難�(diǎn)�

  �(shù)�(jù)�(zhǔn)�。如何準(zhǔn)備海量的測試�(shù)�(jù)并保證模擬數(shù)�(jù)的真�(shí)性?以一個分布式的文件系�(tǒng)為例,預(yù)先存�100GB的數(shù)�(jù)還是存入100TB的數(shù)�(jù)、存入的文件是大小基本一致差別不大還是各不相同甚至差異很大(例如,從幾十字節(jié)至幾十兆字節(jié)不等),這些因素對于分布式系�(tǒng)的性能影響是有很大差異�。另外,如果需要預(yù)先存�100TB的數(shù)�(jù),若按每秒寫�100MB�(shù)�(jù)來計算,寫入100TB�(shù)�(jù)需�100×1024×1024/100=1048576�=291.27小時=12�。我們是否能忍受這么長時間的�(shù)�(jù)�(zhǔn)備工作?為了解決這樣的問�,我們需要對系統(tǒng)架構(gòu)�(shè)計�(jìn)行深入分析,�(shè)計好測試場景,并提前�(jìn)行測試用例的�(shè)�,以盡早開始�(zhǔn)備測試數(shù)�(jù)�

  性能或壓力測試工�。通常來說,分布式系統(tǒng)的測試需要開�(fā)一些測試工具來滿足性能測試的需�。如果可以的�,建議這樣的測試工具由測試工程師自己來�(shí)�(xiàn),因?yàn)闇y試工程師更清楚自己的測試需求。當(dāng)需要自己開�(fā)測試工具的時�,有兩個關(guān)鍵問題需要重�(diǎn)�(guān)注:,一些關(guān)鍵數(shù)�(jù)的收集方式與計算將成為性能測試工具的關(guān)�,例�,TPS(每秒請求數(shù)�、Throughput(吞吐量)計算的�(zhǔn)確性;第二,要保證性能測試工具的性能,如果工具本身的性能不好,將無法給予分布式系�(tǒng)足夠�(qiáng)大的壓力來�(jìn)行測�。另�,當(dāng)考慮到多并發(fā)(例如有10萬客戶端同時并發(fā)連接)時,如果性能測試工具在一臺測試機(jī)器上只能�(yùn)�50個或者更少的�,那么需要的測試�(jī)器數(shù)量也將會很龐大(例如2000臺測試機(jī)�,這個成本或許是許多公司不能承受的。因�,性能測試工具本身的性能必須要足夠好才能滿足需求、降低測試成��

  分布式系�(tǒng)自動化測�

  自動化測試是測試行業(yè)�(fā)展的必然趨勢,對于分布式系統(tǒng)測試而言也不例外。在�(shí)施分布式系統(tǒng)自動化測試的過程�,我們可能會碰到下面兩個難�(diǎn)問題�

  涉及平臺多且硬件�,測試流程控制困難。在�(shí)施自動化測試的過程中,測試腳本需要控制的操作系統(tǒng)和應(yīng)用程序很�,而且存在跨平臺的特�,同時還有可能需要控制一些網(wǎng)�(luò)�(shè)�。因此,選擇一個的自動化測試框架成為了非常重要的工作之一。以我們的�(shí)踐經(jīng)�(yàn)來看,STAF是一個不錯的選擇,它的平臺(Windows及Linux各版本)支持及開�(fā)語言的支持都很全��

  測試�(jié)果驗(yàn)證復(fù)�。對于分布式系統(tǒng)的自動化測試來說,我們需要通過測試腳本來收集各種測試結(jié)果數(shù)�(jù)以驗(yàn)證測試結(jié)果的正確性。在�(shí)施自動化測試的過程中,我們可以將測試�(jié)果數(shù)�(jù)收集部分模塊化,通過各子模塊來檢測各�(xiàng)�(shù)�(jù)是否正確。例�,我們會�(shè)計一個日志分析模�,主要負(fù)�(zé)從服�(wù)器應(yīng)用程序的日志中收集相�(yīng)�(shù)�(jù)�(jìn)行對比驗(yàn)證(本文前面提到的在打樁日志中增加關(guān)鍵字部分就顯得格外重要)�

  隨著互聯(lián)�(wǎng)的發(fā)�,大型分布式系統(tǒng)也越來越�、越來越�(fù)雜、越來越重要。如何有效地保證大型分布式系�(tǒng)7×24小時全天候持�(xù)�(wěn)定地�(yùn)行也就成為了一個重要課��

維庫電子�,電子知�,一查百��

已收錄詞�156382