<ruby id="h6500"><table id="h6500"></table></ruby>
    1. <ruby id="h6500"><video id="h6500"></video></ruby>
          1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>

            大規模分布式系統的測試實(shí)踐(2)

            發(fā)表于:2013-05-03來(lái)源:程序員作者:許咼兢 陳舟鋒 鄭剛點(diǎn)擊數: 標簽:系統測試
            有一個(gè)很典型的例子。早期,我們內部開(kāi)發(fā)一個(gè)基于表結構的存儲引擎時(shí),曾出現過(guò)這樣一件事情:測試程序在最終驗證一致性時(shí),一直都是通過(guò)的,但業(yè)

              有一個(gè)很典型的例子。早期,我們內部開(kāi)發(fā)一個(gè)基于表結構的存儲引擎時(shí),曾出現過(guò)這樣一件事情:測試程序在最終驗證一致性時(shí),一直都是通過(guò)的,但業(yè)務(wù)方和我們一起做E2E測試時(shí),會(huì )有很低的概率發(fā)現數據讀出來(lái)是錯誤的。測試人員百思不得其解,最后發(fā)現,這份數據在寫(xiě)入的時(shí)候,會(huì )先在三個(gè)地方進(jìn)行修改,但由于一些時(shí)序和鎖的問(wèn)題,在改過(guò)了兩個(gè)地方之后就返回成功了,第三個(gè)地方是在內存中,過(guò)一陣子就會(huì )被重新刷成正確的值。如果當時(shí)測試的同學(xué)知道系統里面的這些設計,當時(shí)就會(huì )設計寫(xiě)入過(guò)程中,對數據一致性進(jìn)行實(shí)時(shí)檢測,就不會(huì )在代價(jià)更高的E2E測試中發(fā)現問(wèn)題,解決的效率也會(huì )因此而提高。

              帶壓力和隨機故障模擬的長(cháng)時(shí)間穩定性測試

              文首提到大規模生產(chǎn)集群上的問(wèn)題,很難在小規模的測試集群上發(fā)現。究其原因,主要是兩方面導致的。

              大規模集群中原本小概率的單機故障會(huì )隨機器數增加,導致集群整體的硬件故障率線(xiàn)性提升,甚至多種故障同時(shí)發(fā)生的概率也大大增加。

              機器數增多會(huì )導致對飛天模塊的壓力點(diǎn)發(fā)生轉移。以彈性計算(ECS)為例,在300臺變600臺時(shí)發(fā)現,原本擔心的文件系統Master還未成為QPS瓶頸,負責鎖文件協(xié)同的命名服務(wù)首先成為瓶頸。

              此外,各種故障的組合爆炸也讓完整的容錯測試在設計和執行上的代價(jià)變得太大。

              為解決上述困難,在飛天測試實(shí)踐中,我們逐漸積累出一套帶背景壓力和隨機故障模擬的長(cháng)時(shí)間穩定性測試方案。背景壓力主要是針對各個(gè)底層模塊的讀寫(xiě)壓力,通常會(huì )針對某類(lèi)應用場(chǎng)景來(lái)模擬。

              基于分而治之和系統仿真的方法,我們實(shí)現了一些輕量級的壓力工具,讓各模塊的Master機器和Slave機器分別接受到大規模生產(chǎn)集群上的類(lèi)似訪(fǎng)問(wèn)壓力和連接規模。另外,還增加一些諸如CPU、Memory、Network的資源消耗器,以模擬生產(chǎn)環(huán)境業(yè)務(wù)繁忙導致機器資源緊張的場(chǎng)景。

              故障模擬上,一方面,盡可能豐富軟件手段模擬軟硬件故障,比如磁盤(pán)錯誤(包括壞盤(pán)、只讀等)、機器宕機、重啟、斷網(wǎng)、交換機重啟、主要模塊進(jìn)程重啟、假死等;另一方面,這些故障模擬操作都會(huì )按照預先設定比例進(jìn)行隨機組合。在這樣的背景壓力和隨機故障操作下,長(cháng)時(shí)間(至少7×24小時(shí))持續運行上層應用模擬程序/作業(yè),同時(shí)通過(guò)在線(xiàn)監控系統來(lái)檢查飛天是否正常。

              簡(jiǎn)而言之,我們用背景壓力解決壓力點(diǎn)問(wèn)題,用長(cháng)時(shí)間跑解決小集群的故障小概率問(wèn)題,用隨機故障模擬和組合來(lái)解決容錯測試設計和執行的代價(jià)問(wèn)題。

              實(shí)踐證明,飛天很多重要的Bug都是通過(guò)這個(gè)測試被發(fā)現的。當然,這類(lèi)測試也有短處,就是問(wèn)題調查需要較長(cháng)的時(shí)間,要求測試人員對系統有較深的了解和診斷能力。

              結束語(yǔ)

              大規模分布式系統的測試是一項非常有挑戰的工作。盡管我們持續落實(shí)各層測試,積累實(shí)踐經(jīng)驗,創(chuàng )新測試方法,但由于測試條件的限制、生產(chǎn)環(huán)境的復雜,軟件問(wèn)題仍然無(wú)法完全依賴(lài)測試消除。本文僅僅提到了飛天測試在Test in Lab方向的一些思考和實(shí)踐,完善的飛天質(zhì)量保證體系其實(shí)需要Test in Lab和Test in Production雙管齊下,這才是飛天測試樂(lè )此不疲的努力方向。

              作者許咼兢,阿里云飛天技術(shù)專(zhuān)家,負責飛天開(kāi)放服務(wù)質(zhì)量保障,長(cháng)期工作在測試工作第一線(xiàn),目前專(zhuān)注于分布式大規模在線(xiàn)場(chǎng)景的測試。

              作者陳舟鋒,阿里云飛天技術(shù)專(zhuān)家,負責飛天基礎模塊集成測試。畢業(yè)于北京航空航天大學(xué),畢業(yè)后一直從事軟件測試開(kāi)發(fā)工作,曾就職于微軟亞洲工程院和搜索技術(shù)中心,在UI自動(dòng)化測試和分布式系統測試上有濃厚興趣和較多積累。

              作者鄭剛,阿里云飛天高級專(zhuān)家,負責飛天集成測試和版本發(fā)布。畢業(yè)于南京大學(xué),主要興趣在大規模分布式系統的系統測試、持續集成和系統仿真。

            原文轉自:http://www.programmer.com.cn/15093/

            老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
              <ruby id="h6500"><table id="h6500"></table></ruby>
              1. <ruby id="h6500"><video id="h6500"></video></ruby>
                    1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>