分布式系�(tǒng)是個由多個互相連接的處理資源組成的計算機系�(tǒng),它們在整個系�(tǒng)的控制下�(xié)同執(zhí)行同一個任務,最少依賴于集中的程�、數(shù)�(jù)或硬�。這些資源可以是地理上相鄰�,也可以是在地理上分散的。分布式系統(tǒng)隱含的共同特征是:場地分�、數(shù)�(jù)分布、硬件平臺多樣化�操作系統(tǒng)多樣�、應用平臺多樣化�
當討論分布式系統(tǒng)�,我們面臨許多以下這些形容詞所描述� 同類型: 分布式的、刪絡的、并行的、并�(fā)的和分散�。分布式處理是一個相對較新的領域,所以還沒有‘致的定�。與順序計算相比、并行的、并�(fā)的和分布式的計算包括多個PE問的集體�(xié)同動作。這些術語在范圍一卜相互覆�,有時也交換使用�
*“并行的”意味著從一個單一控制線程對數(shù)�(jù)集的鎖步(1ockst ep)動作�
在并行計算機級別�� 指令流多�(shù)�(jù)�(SIMD)計算機就是一個使用多個數(shù)�(jù)處理單元在許多數(shù)�(jù)項上同時進行相同或相似操作的例子�
*“并�(fā)的”意味著某些動作可以以任意次序執(zhí)�。例�,在史島級別,卜和在多指令流多數(shù)�(jù)�(MIMD)并行計算機上進行部分獨立的操作�
*“分布式的”意味著計算的成本或性能取決于數(shù)�(jù)和控制的通信�
如果 個系�(tǒng)的部件局限在一個地方,它就是集中式的:如果它的部件在不同地l20�,部件之間要么不存在或僅存在有限的合�,要么存在緊密的合作,它是分散式��
當一個分散式系統(tǒng)不存在或僅存在有限的合作時,它就被稱作網(wǎng)絡的;否則它就被稱作分布式的,表示在不同地方的部件之間存在緊密的合作。在給出分布式系�(tǒng)具體定義的模型中,分布式系統(tǒng)可以用硬�、控�、數(shù)�(jù)這三個維度加以檢��
分布式系�(tǒng)=分布式硬�+分布式控�+分布式數(shù)�(jù)
分布式系�(tǒng)有很多不同的定義,但其中沒有一個是令人滿意或者能夠被所有人接受的。介紹分布式系統(tǒng),對它的特點的下列大致的描述足夠了:
“一個分布式系統(tǒng)是一些獨立的計算機的集合,但是對這個系�(tǒng)的用戶來�,系�(tǒng)就象一臺計算機一�?�?/FONT>
這個定義有兩個方面的含義�,從硬件角度來講,各個計算機都是自治的;第二,從軟件角度來講,用戶將整個系�(tǒng)看作是一臺計算機。這兩者都是必需的,缺一不可。在簡要介紹有關硬件、軟件的一些背景材料之后,我們將再回到這兩點上來進行討論�
由于給出分布式系�(tǒng)的一些實例可能要比進一步的深入研究定義更有幫助,下面就給出一些分布式系統(tǒng)的例�。個例�,設想一個大學或公司部門�(nèi)的工作站�(wǎng)�。除了每個用戶的個人工作站外,機房中可能還有一個共享的處理機池(pool of processor),這些處理機并沒有分配給特定的用戶,而是在需要的時候進行動態(tài)分配。這樣的系�(tǒng)可能會有一個單一的文件系�(tǒng),其中所有的文件可以從所有的計算機上以相同的方式并且使用相同的路徑名存取。另�,當一個用戶輸入一條命令時,系�(tǒng)能夠找到一個的地方�(zhí)行該命令。這可能是在用戶自己的工作站上,可能是在別人空閑的工作站上,也可能在機房里一個未分配的處理機�。如果這個從系統(tǒng)整體上看以及運行起來看都像一個典型的單處理機分時系統(tǒng),那么就可以稱它為一個分布式系統(tǒng)�
第二個例�,考慮一個到處是機器人的工廠。每個機器人都有一臺功能強大的計算機用于處理視�、進行計劃、通信以及其它任務。當裝配線上的某個機器人�(fā)�(xiàn)一個它要安裝的零件有缺陷時,它就要求該零件供應部門的另一個機器人給它送一個替代品。如果所有的機器人都如同連接于同一中心計算機上的外設一樣工�,而且系統(tǒng)的程序也是以這種方式進行編制的話,那么它也是一種分布式系統(tǒng)�
一個例子是一個在世界各地有數(shù)百個分支機�(gòu)的大銀行。每個分支機�(gòu)有一臺主計算機存儲當?shù)貛つ亢吞幚肀镜厥�?。此�,每臺計算機還能通過串口服務器與其他分支機構(gòu)的計算機及總部的計算機對�。如果交易不管顧客和帳目在哪里都能夠進行,而且用戶也不會感到當前這個系�(tǒng)與被替代的老的集中式主機有何不同,那么這個系�(tǒng)也被認為是一個分布式系統(tǒng)�
分布式系�(tǒng)與集中式系統(tǒng)相比較而言的優(yōu)�
系統(tǒng)傾向于分布式�(fā)展潮流的真正�(qū)動力是經(jīng)��25年前,計算機權威和評論家Herb Grosch指出CPU的計算能力與它的價格的平方成正比,后來成為Grosch定理。也就是說如果你付出兩倍的價錢,就能獲得四倍的性能。這一論斷與當時的大型機技術非常吻�,因而使得許多機�(gòu)都盡其所能購買的單個大型機�
隨著微處理機技術的�(fā)展,Grosch定理不再適用�?,F(xiàn)在人們只需花幾百美元就能買到一個CPU芯片,這個芯片每秒鐘�(zhí)行的指令�80年代的大型機的處理機每秒鐘所�(zhí)行的指令還多。如果你愿意付出兩倍的價錢,將得到同樣的CPU,但它卻以更高的時鐘速率運行。因�,最節(jié)約成本的辦法通常是在一個系�(tǒng)中使用集中在一起的大量的廉價CPU。所�,傾向于分布式系�(tǒng)的主要原因是它可以潛在地得到比單個的大型集中式系�(tǒng)好得多的性能價格比。實際上,分布式系統(tǒng)是通過較低廉的價格來實�(xiàn)相似的性能的�
與這一觀點稍有不同的�,我們發(fā)�(xiàn)微處理機的集合不僅能�(chǎn)生比單個大型主機更好的性能價格比,而且還能�(chǎn)生單個大型主機無論如何都不能達到的性能。例�,按目前的技�,我們能夠用10,000個現(xiàn)代CPU芯片組成一個系�(tǒng),每個CPU芯片�50 MIPS(每秒百萬指令)的速率運行,那么整個系�(tǒng)的性能就是500,000 MIPS。而如果單個處理機(即CPU)要達到這一性能,就必需�2×10-12 秒(2 微微秒,0.002納秒)的時間�(nèi)�(zhí)行一條指�,然而沒有一個現(xiàn)存的計算機能接近這個速度,從理論上和工程上考慮都認為能達到這一要求的計算機都是不可能存在的。理論上,愛因斯坦的相對論指出光的傳播速度最快,它能�2 微微秒內(nèi)傳播0.6毫米。實際上,一個包含于邊長�0.6 毫米大小的立方體�(nèi)的具有上面所說的計算速度的計算機�(chǎn)生大量的熱量就能將它自己立即熔掉。所�,無論是要以低價格獲得普通的性能還是要以較高的價格獲得極高的性能,分布式系統(tǒng)都能夠滿��
另一方面,一些作者對分布式系�(tǒng)和并行系�(tǒng)進行了區(qū)�。他們認為分布式系統(tǒng)是設計用來允許眾多用戶一起工作的,而并行系�(tǒng)的目標就是以最快的速度完成一個任�,就像我們的速度�500,000 MIPS的計算機那樣。我們認�,上述的區(qū)別是難以成立�,因為實際上這兩個設計領域是�(tǒng)一�。我們更愿意在最廣泛的意義上使用“分布式系統(tǒng)”一詞來表示任何一個有多個互連的CPU�(xié)同工作的系統(tǒng)�
建立分布式系�(tǒng)的另一原因在于一些應用本身是分布式的。一個超級市場連鎖店可能有許多分店,每個商店都需要采購當?shù)厣a(chǎn)的商品(可能來自本地的農(nóng)場)、進行本地銷售,或者要對本地的哪些蔬菜因時間太長或已經(jīng)腐爛而必須扔掉作出決�。因�,每個商店的本地計算機能明了存貨清單是有意義的,而不是集中于公司總部。畢�,大多數(shù)查詢和更新都是在本地進行�。然�,連鎖超級市場的高層管理者也會不時地想要了解他們目前還有多少甘�。實�(xiàn)這一目標的一種途徑就是將整個系�(tǒng)建設成對于應用程序來說就像一臺計算機一�,但是在實現(xiàn)上它是分布的,像我們前面所描述的一個商店有一臺機器。這就是一個商�(yè)分布式系�(tǒng)�
另一種固有的分布式系�(tǒng)是通常被稱為計算機支持下的�(xié)同工作系�(tǒng)(CSCW,Computer Supported Cooperative Work�。在這個系�(tǒng)�,一組相互之間在物理上距離較遠的人員可以一起進行工作,例�,寫出同一份報�。就計算機工�(yè)的長期發(fā)展趨勢來說,人們可以很容易的想像出一個全新領�--計算機支持的�(xié)同游戲(CSCG:Computer Supported Cooperative Games�。在這個游戲中,不在同一地方的游戲者可以實時的玩游戲。你可以想像,在一個多維迷宮中玩電子捉迷藏,甚至是一起玩一場電子空�(zhàn),每個人操縱自己的本地飛行模擬器去試著擊落別的游戲�,每個游戲者的屏幕上都顯示出其飛機外的情況,包括其它飛入它的視野的飛機�
同集中式系統(tǒng)相比�,分布式系統(tǒng)的另一個潛在的�(yōu)勢在于它的高可靠性。通過把工作負載分散到眾多的機器上,單個芯片故障最多只會使一臺機器停�,而其它機器不會受任何影響。理想條件下,某一時刻如果�5%的計算機出現(xiàn)故障,系�(tǒng)將仍能繼�(xù)工作,只不過損失5%的性能。對于關鍵性的應用,如核反應堆或飛機的控制系統(tǒng),采用分布式系統(tǒng)來實�(xiàn)主要是考慮到它可以獲得高可靠��
,漸增式的增長方式也是分布式系統(tǒng)�(yōu)于集中式系統(tǒng)的一個潛在的重要的原�。通常,一個公司會買一臺大型主機來完成所有的工作。而當公司繁榮擴充、工作量就會增大,當其增大到某一程度�,這個主機就不能再勝任了。僅有的解決辦法是要么用更大型的機器(如果有的話)代替現(xiàn)有的大型主機,要么再增加一臺大型主機。這兩種作法都會引起公司運�(zhuǎn)混亂。相比較之下,如果采用分布式系統(tǒng),僅給系�(tǒng)增加一些處理機就可能解決這個問�,而且這也允許系統(tǒng)在需求增長的時候逐漸進行擴充。表1-1中總�(jié)了以上這些�(yōu)��
項目 |
� � |
�(jīng)� |
微處理機提供了比大型主機更好的性能價格� |
速度 |
分布式系�(tǒng)總的計算能力比單個大型主機更� |
固有的分布� |
一些應用涉及到空間上分散的機器 |
可靠� |
如果一個機器崩�,整個系�(tǒng)還可以運�(zhuǎn) |
漸增 |
計算能力可以逐漸有所增加 |
從長遠的角度來看,主要的�(qū)動力將是大量個人計算機的存在和人們共同工作與信息共享的需要,這種信息共享必需是以一種方便的形式進行�,而不受地理或人員、數(shù)�(jù),機器的物理分布的影��
分布式系�(tǒng)與獨立PC機相比較的優(yōu)�
既然使用微處理機是一種節(jié)省開支的辦法,那么為什么不給每個人一臺個人計算�,讓他們各自獨立地工作�?一則,許多用戶需要共享數(shù)�(jù)。例�,機票預訂處的工作人員需要訪問存儲航班以及現(xiàn)有座位信息的主數(shù)�(jù)�。假如給每個工作人員都備份整個數(shù)�(jù)�,那么在實際中這是無法工作的,因為沒有人知道其他工作人員已�(jīng)賣出了哪些座位。共享的�(shù)�(jù)是上例和許多其它應用的基礎,所以計算機間必須互�。而計算機互連就�(chǎn)生了分布式系�(tǒng)�
共享并不只是僅僅涉及�(shù)�(jù)。昂貴的外設,例如彩色激光打印機,照相排版機以及大型存儲設備(如自動光盤點唱機)都是共享資源�
把一組孤立的計算機連成一個分布式系統(tǒng)的第三個原因是它可以增強人與人之間的溝通,電子郵件比信�、電話和傳真有更多的誘人之處。它比信件快的多,不像電話需要兩人同時都�,也不像傳真,它所�(chǎn)生的文件可在計算機中進行編輯、重排和存儲,也可以由文本處理程序來處理�
,分布式系統(tǒng)可能比給每個用戶一個獨立的計算機更靈活。盡管一種可能的模式是給每個人一臺個人計算機并把它們通過LAN�(lián)在一起,但這種方式并不是的。另外還存在一種模式是將個人計算機和共享計算機混合連接在一起(這些機器的型號可能并不完全相同),使工作能夠在最合適的計算機上完�,而并不總是在自己的計算機上完�。這種方式可以使工作負荷能更有效地在計算機系統(tǒng)中進行分配。系�(tǒng)中某些計算機的失效也可以通過使其工作在其它計算機上進行而得到補�。表1-2總結(jié)了以上所介紹的各��
項目 |
� � |
�(shù)�(jù)共享 |
允許多個用戶訪問一個公共的�(shù)�(jù)� |
設備共享 |
允許多個用戶共享昂貴的外圍設備(如彩色打印機) |
通信 |
使得人們之間的通信更加容易,如通過電子郵件 |
靈活� |
用最有效的方式將工作負荷分配到可用的機器� |
盡管分布式系�(tǒng)有許多優(yōu)�,但也有缺點。本節(jié)就將指出其中的一些缺�。我們前面已�(jīng)提到了最棘手的問題:軟件。就目前的技術發(fā)展水�,我們在設計、實�(xiàn)及使用分布式系統(tǒng)上都沒有太多的經(jīng)�。什么樣的操作系�(tǒng)、程序設計語言和應用適合這一系統(tǒng)�?用戶對分布式系�(tǒng)中分布式處理又應該了解多少呢?系�(tǒng)應當做多少而用戶又應當做多少呢?專家們的觀點不一(這并不是因為專家們與眾不同,而是因為對于分布式系�(tǒng)他們也很少涉及�。隨著更多的研究的進行,這些問題將會逐漸減少。但是目前我們不應該低估這個問��
第二個潛在的問題是通信�(wǎng)絡。由于它會損失信�,所以就需要專門的軟件進行恢復。同�,網(wǎng)絡還會產(chǎn)生過�。當�(wǎng)絡負載趨于飽和時,必須對它進行改造替換或加入另外一個網(wǎng)絡擴�。在這兩種情況下,一個或多個建筑中的某些部分必須花費很高的費用進行重新布線,或者更換網(wǎng)絡接口板(例如用光纖�。一旦系�(tǒng)依賴于網(wǎng)絡,那么�(wǎng)絡的信息丟失或飽和將會抵消我們通過建立分布式系�(tǒng)所獲得的大部分�(yōu)��
,上面我們作為優(yōu)點來描述的數(shù)�(jù)易于共享性也是具有兩面性的。如果人們能夠很方便地存取整個系�(tǒng)中的�(shù)�(jù),那么他們同樣也能很方便地存取與他們無關的�(shù)�(jù)。換句話說,我們經(jīng)常要考慮系統(tǒng)的安全性問�。通常,對必須保密的數(shù)�(jù),使用一個專用的、不與其它任何機器相連的孤立的個人計算機進行存儲的方法更可取。而且這個計算機被保存在一個上鎖的十分安全的房間中,與這臺計算相配套的所有軟盤都存放在這個房間中的一個保險箱�。分布式系統(tǒng)的缺點如�1-3所示�
項目 |
� � |
軟件 |
目前為分布式系統(tǒng)開發(fā)的軟件還很少 |
�(wǎng)� |
�(wǎng)絡可能飽和和引起其它的問� |
安全 |
容易造成對保密數(shù)�(jù)的訪� |
� 1-3. 分布式系�(tǒng)的缺�
盡管存在這些潛在的問�,許多人還是認為分布式系�(tǒng)的優(yōu)點多于缺�,并且普遍認為分布式系統(tǒng)在未來幾年中會越來越重要。實際上,在幾年之內(nèi)許多機構(gòu)會將他們的大多�(shù)計算機連接到大型分布式系統(tǒng)中,為用戶提供更�、更廉價和更方便的服�。而在十年之后,中型或大型商業(yè)或其它機�(gòu)中可能將不再存在一臺孤立的計算機了�
分布式系�(tǒng)被用在許多不同類型的應用�。以下我們列出了一些應�。對這些應用而言,使用分布式系統(tǒng)要比其他體系�(jié)�(gòu)如處理機和共享存儲器多處理機更優(yōu)越:
并行和高性能應用
原則�,并行應用也可以在共享存儲器多處理機上運行,但共享存儲器系統(tǒng)不能很好地擴大規(guī)模以包括大量的處理機。HPCC(高性能計算和通信)應用一般需要一個可伸縮的設計,這種設計取決于分布式處理�
容錯應用
因為每個P E是自治的,所以分布式系統(tǒng)更加可靠。一個單元或資源(軟件或硬�)的故障不影響其他資源的正常功��
固有的分布式應用
許多應用是固有分布式�。這些應用是突�(fā)模式(burstmode)而非批量模式(bulk mode)。這方面的實例有事務處理和Internet Javad,程序�
這些應用的性能取決于吞吐量(事務響應時陽J或每秒完成的事務�(shù))而不是一般多處理機所用的�(zhí)行時��
對于一組用戶而言� 分布式系�(tǒng)有一個特別的應用稱為計算機支持的�(xié)同工�(computer supported Cooperati veworking,CSCW)或群�(groupware)� 支持用戶�(xié)同工�。另一個應用是分布式會�� 即通過物理的分布式�(wǎng)絡進行電子會議。同�,多媒體遠程教學也是一個類似的應用。由于在不同的平臺上如:Pc、工作站、局域網(wǎng)和廣域網(wǎng)上可獲得非常多樣的應�,用戶希望能超出他fliP c的限制以獲得更廣泛的特十牛、功能和性能。不同網(wǎng)絡和�(huán)�(包括分布式系�(tǒng)�(huán)�)下的q 操作性變得越來越重要。為了達到互操作�,用戶需要一個標準的分布式計算環(huán)�,在這個環(huán)境里,所有系�(tǒng)和資源都可用�
DCE (分布式計算環(huán)�)是OSF (開放系統(tǒng)基金�)開發(fā)的分布式計算技術的工業(yè)標準�。它提供保護和控制對�(shù)�(jù)訪問的安全服�、容易尋找分布式資源的名字服�、以及高度可伸縮的模型用于組織極為分散的用戶、服務和�(shù)�(jù)。D C E可在所有主要的計算平臺上運行, 并設計成支持異型硬件和軟件環(huán)境下的分布式應用�
DCE已經(jīng)被包括TRANSVARL在內(nèi)的一些r一商實�(xiàn)。TRANSVARL是最早的多廠商組(multi vendor team)的成員之一,它提出的建議已成為DC E體系�(jié)�(gòu)的基礎。在中可以找到利用DCE開發(fā)分布式應用的指南。具有標準接口和�(xié)議的系統(tǒng)也叫做開放系�(tǒng)。一些其它標準基于一個特別的模型,比如CORBA (公用對象請求代理程序體系�(jié)�(gòu)),它是由OMG (對象管理�)和多計算機廠商聯(lián)盟開�(fā)的一個標準。CORBA使用面向?qū)ο竽P蛯崿F(xiàn)分布式系�(tǒng)中的透明服務請求。工�(yè)界有自己的標�,比如微軟的分布式構(gòu)件對象模�(DCOM)和Sun Microsystem公司的Java Beans�
在測試執(zhí)行過程中,對測試�(jié)果的分析是一個需要進行深入思考的重點問題。分布式系統(tǒng)測試的重點在于對后端服務器集群的測試,而判定系�(tǒng)中是否存在Bug則是我們需要解決的重要問題。那么應該如何確定是否存在Bug��
對于測試�(jié)果的分析,我們通常觀察下面幾種情��
觀察前端應用的返回�(jié)�。這里需要分兩種情況來考慮�,按照前端應用業(yè)務功能點及流程進行操作,觀察返回結(jié)果是否符合業(yè)務方的需求預期;第二,操作后端的服務器(通常是重啟、宕�、斷�(wǎng)等操作),觀察前端應用的返回�(jié)果是否符合系�(tǒng)的設計需��
分析服務器日�。在功能測試過程�,當我們在啟動服務器的時�,需要將日志級別定義為Debug級別(級別)。這樣做的主要目的是為了能便于測試工程師來分析日志和定位問�。為了能更好地定位問題,常常需要在服務器程序代碼中進行日志打樁,把程序中的一些重要數(shù)�(jù)通過日志的方式展�(xiàn)出來。通常情況�,我們需要對日志的格式進行約定,在日志行中增加一些關鍵字來進行分類,這將便于測試工程師進行日志分析,也有利于開展分布式系統(tǒng)的自動化測試。另外,值得注意的是,我們盡可能地將打樁代碼放在Debug代碼中,避免影響系統(tǒng)代碼,引入新問題�
分析操作系統(tǒng)的一些重要信�。我們測試的分布式系�(tǒng)絕大多數(shù)是基于Linux操作系統(tǒng)開發(fā)的,在測試的過程�,除了詳細分析程序日志以�,還需要對操作系統(tǒng)的一些重要數(shù)�(jù)信息進行分析,從而來診斷服務器程序是否存在異�。以Linux操作系統(tǒng)為例,我們常常會使用top命令、netstat命令及sar命令來查看操作系�(tǒng)的一些數(shù)�(jù)信息。例�,可以通過netstat命令檢查服務器程序是否正確地�(jiān)聽了指定的端口等�
借助其他分析工具。例如,如何判斷服務器程序是否產(chǎn)生了�(nèi)存泄�?通常需要借助于內(nèi)存檢測工具來進行分析。在Linux�(huán)境下,我們常用Valgrind來進行�(nèi)存檢�。這是一款非常好�、功能強大的分析工具,可以幫助測試或者開�(fā)工程師快速發(fā)�(xiàn)很多隱藏的程序Bug,尤其是在內(nèi)存檢測方面(同時它還具有很多其他的功�,讀者可以自己查看官�(wǎng)中的使用手冊��
分布式系�(tǒng)壓力測試與性能測試
對于分布式系�(tǒng)而言,壓力測試和性能測試非常重要。在進行壓力測試和性能測試的時候,可能會碰到下面一些難��
�(shù)�(jù)準備。如何準備海量的測試�(shù)�(jù)并保證模擬數(shù)�(jù)的真實性?以一個分布式的文件系�(tǒng)為例,預先存�100GB的數(shù)�(jù)還是存入100TB的數(shù)�(jù)、存入的文件是大小基本一致差別不大還是各不相同甚至差異很大(例如,從幾十字節(jié)至幾十兆字節(jié)不等�,這些因素對于分布式系�(tǒng)的性能影響是有很大差異的。另�,如果需要預先存�100TB的數(shù)�(jù),若按每秒寫�100MB�(shù)�(jù)來計�,寫�100TB�(shù)�(jù)需�100×1024×1024/100=1048576�=291.27小時=12�。我們是否能忍受這么長時間的�(shù)�(jù)準備工作?為了解決這樣的問�,我們需要對系統(tǒng)架構(gòu)設計進行深入分析,設計好測試場景,并提前進行測試用例的設計,以盡早開始準備測試數(shù)�(jù)�
性能或壓力測試工具。通常來說,分布式系統(tǒng)的測試需要開�(fā)一些測試工具來滿足性能測試的需�。如果可以的�,建議這樣的測試工具由測試工程師自己來實現(xiàn),因為測試工程師更清楚自己的測試需求。當需要自己開�(fā)測試工具的時�,有兩個關鍵問題需要重點關注:,一些關鍵數(shù)�(jù)的收集方式與計算將成為性能測試工具的關�,例如,TPS(每秒請求數(shù)�、Throughput(吞吐量)計算的準確�;第�,要保證性能測試工具的性能,如果工具本身的性能不好,將無法給予分布式系�(tǒng)足夠強大的壓力來進行測試。另�,當考慮到多并發(fā)(例如有10萬客戶端同時并發(fā)連接)時,如果性能測試工具在一臺測試機器上只能運行50個或者更少的�,那么需要的測試機器�(shù)量也將會很龐大(例如2000臺測試機),這個成本或許是許多公司不能承受�。因此,性能測試工具本身的性能必須要足夠好才能滿足需�、降低測試成本�
分布式系�(tǒng)自動化測�
自動化測試是測試行業(yè)�(fā)展的必然趨勢,對于分布式系統(tǒng)測試而言也不例外。在實施分布式系�(tǒng)自動化測試的過程�,我們可能會碰到下面兩個難點問題�
涉及平臺多且硬件�,測試流程控制困難。在實施自動化測試的過程�,測試腳本需要控制的操作系統(tǒng)和應用程序很多,而且存在跨平臺的特�,同時還有可能需要控制一些網(wǎng)絡設備。因�,選擇一個的自動化測試框架成為了非常重要的工作之一。以我們的實踐�(jīng)驗來�,STAF是一個不錯的選擇,它的平臺(Windows及Linux各版本)支持及開�(fā)語言的支持都很全��
測試�(jié)果驗證復雜。對于分布式系統(tǒng)的自動化測試來說,我們需要通過測試腳本來收集各種測試結(jié)果數(shù)�(jù)以驗證測試結(jié)果的正確性。在實施自動化測試的過程�,我們可以將測試�(jié)果數(shù)�(jù)收集部分模塊�,通過各子模塊來檢測各項數(shù)�(jù)是否正確。例�,我們會設計一個日志分析模�,主要負責從服務器應用程序的日志中收集相應數(shù)�(jù)進行對比驗證(本文前面提到的在打樁日志中增加關鍵字部分就顯得格外重要)�
隨著互聯(lián)�(wǎng)的發(fā)�,大型分布式系統(tǒng)也越來越多、越來越復雜、越來越重要。如何有效地保證大型分布式系�(tǒng)7×24小時全天候持�(xù)�(wěn)定地運行也就成為了一個重要課��
維庫電子通,電子知識,一查百通!
已收錄詞�170104�