qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請訪問 http://qaseven.github.io/

          云梯1跨機房測試整體解決方案

          閱讀本文前建議先閱讀云梯跨機房方案介紹,了解云梯跨機房項目背景,難點以及解決方案。本文重點介紹下跨機房測試的整體解決方案
            功能測試
            測試用例管理:http://kelude.taobao.net/testsuites?project_id=12202
            數(shù)據(jù)安全性測試
            數(shù)據(jù)安全簡單的說就是不能丟數(shù)據(jù),跨機房后集群規(guī)模到達近萬臺,數(shù)據(jù)存儲到達數(shù)百PB,如何確保數(shù)據(jù)安全是一個很大的挑戰(zhàn)
            在跨機房的情況下,我們通過(Sange、Slive、DFSIO)模擬線上比例的各種混合性操作,通過NN的FSCK, CN的 CrossCheck工具定位異常數(shù)據(jù)如CORRUPT,一直處于BEING WRITTEN無法關閉的文件,跨機房失敗的文件
            數(shù)據(jù)安全性測試里需要考慮的一種重要場景是NN和DN重啟,在實際的升級過程中,在集群重啟前各業(yè)務線并沒有停止讀寫數(shù)據(jù),重啟后數(shù)據(jù)的一致性和可恢復性非常重要;在實際的跨機房測試中我們曾發(fā)現(xiàn)一個因為重啟后狀態(tài)不一致導致無法加載EDITLOG從而使NN無法啟動的BUG,如果這種問題發(fā)生到線上,后果不堪設想
            性能測試
            性能測試的關鍵點是如何建立性能基準,對線上性能進行準確評估,跨機房測試性能基準工具主要包括:
            DFSIO:  HDFS  I/O(讀寫) 性能基準
            Slive: 主要模擬線上各種RPC,在每個TASK發(fā)起混合型RPC操作,并可以指定文件和block大小,該工具可以同時測試NN和DN的性能;
            Sange:  主要模擬線上各種RPC操作壓力,在每個TASK啟動大量Thread進行混合性RPC操作 ,對NN產(chǎn)生壓力,進而評估NN RPC 處理能力;SANGE工具不能指定文件和Block大小,會產(chǎn)生大量小文件,比SLIVE對NN可以產(chǎn)生更大的RPC壓力
            Terasort:MapReduce 數(shù)據(jù)排序能力基準
            Gridmix :Gridmix和Rumen結合可以模擬和生產(chǎn)作業(yè)相應的負載,更真實的模擬生產(chǎn)環(huán)境
            SmallJobBench:通過創(chuàng)建大量sleep job到不同group來測試jobtracker性能
            SubmitJobBench:通過每個map啟動(-nThreads)個線程,每個線程順序提交(-nTasks)個作業(yè), 每個線程有自己的獨立賬號,來模擬線上多賬號并行度2K情況下JTProxy性能
            跨機房性能主要對比場景:
            主要針對上述場景進行性能對比和評估包括NN帶寬,內(nèi)存,CPU load, NN RPC 指標, NN 各個operation的吞吐量(opsper second)和平均執(zhí)行時間, NN同步editlog性能指標,跨機房帶寬流量,跨機房復制速率,跨機房副本刪除速率,CROSSFSCK時間
            跨機房測試還有很重要的一點是要保證計算一定優(yōu)先從本機房讀數(shù)據(jù),除非本機房沒有數(shù)據(jù)才會跨機房讀;實際測試中TERASORT跨機房讀對比本機房讀性能會有32%左右的下降,而且對帶寬也是很大的浪費。

           重要性能指標參考:
          1.   cpu_user
          2.   cpu_wio
          3.   mem_free
          4.   bytes_in
          5.   bytes_out
          6.   load_five
          7.   total-iops
          8.   total-ReadBytes
          9.   total-WriteBytes
          10.  dfs.namenode.Syncs_avg_time
          11.  dfs.namenode.Syncs_num_ops
          12.  dfs.namenode.Transactions_num_ops
          13.  rpc.metrics.RpcProcessingTime_avg_time
          14.  rpc.metrics.RpcQueueTime_avg_time
          15.  rpc.metrics.RpcProcessingTime_num_ops
          16.  rpc.metrics.delayedCallsQueueLen
          17.  rpc.metrics.RpcQueueTime_num_ops
          18.  rpc.metrics.addBlock_num_ops
          19.  rpc.metrics.append_num_ops
          20.  rpc.metrics.create_num_ops
          21.  rpc.metrics.delete_num_ops
          22.  rpc.metrics.getFileInfo_num_ops
          23.  rpc.metrics.getListing_num_ops
          24.  rpc.metrics.listCorruptFileBlocks_num_ops
          25.  rpc.metrics.mkdirs_num_ops
          26.  rpc.metrics.rename_num_ops
          27.  rpc.metrics.RpcProcessingTime_num_ops
          28.  rpc.metrics.RpcQueueTime_num_ops
          29.  rpc.metrics.blockReport_num_ops
          30.  rpc.metrics.blockReceivedAndDeleted_num_ops
          31.  rpc.metrics.sendHeartbeat_num_ops
          32.  rpc.metrics.rollEditLog_num_ops
          33.  rpc.metrics.getBlockLocationsHA_num_ops
          34.  rpc.metrics.getBlockLocations_num_ops
            壓力測試
            壓力測試和性能測試關系緊密,壓力測試更側(cè)重于在線上最大壓力的情況下系統(tǒng)是否可以正常工作,性能測試則側(cè)重于新上線的版本是否有性能下降問題,主要是基于基準進行性能對比
            壓力測試比較難的一點是如何在小規(guī)模的測試集群模擬線上真實的壓力,基本思路是     啟動MR程序, 每個Task啟動多個Thread,在每個thread進行大量模擬操作,NN和DN壓力測試我們可以用到SANGE和Slive,JTPROXY壓力測試可以用到SubmitJobBench,JT壓力測試可以用到SmallJobBench和GurgleClient(TaskTracker模擬器)
            跨機房壓力測試主要是評估crossnode的自身壓力和crossnode對namenode、datanode的壓力影響;crossnode對namenode壓力主要體現(xiàn)在RPC的請求,對datanode的壓力目前主要體現(xiàn)在帶寬和磁盤上
            數(shù)據(jù)準備:利用SLIVE工具產(chǎn)生跟線上一樣數(shù)量的Block和文件數(shù)
            跨機房壓力主要場景:
            穩(wěn)定性測試
            構建BI仿真實驗室,模擬整個云梯跨機房項目變更流程,運行BI線一日的作業(yè),查看作業(yè)運行情況和做數(shù)據(jù)產(chǎn)出對比,驗證跨機房后數(shù)據(jù)的正確性和業(yè)務線運行時間是否受影響
            總結
            整個項目過程中,測試人員共發(fā)現(xiàn)有效bug 100多個,其中5個bug嚴重影響性能,10個bug可能導致丟數(shù)據(jù),4個bug會導致服務不可用
            本文主要是跨機房的測試整體介紹,整個跨機房測試是一個非常復雜的過程,可能大家覺得不是很過癮,后續(xù)會進行跨機房測試經(jīng)典BUG和工具分享,敬請期待

          posted on 2013-11-08 14:16 順其自然EVO 閱讀(436) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          <2013年11月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          導航

          統(tǒng)計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 彩票| 额尔古纳市| 镇原县| 天台县| 河曲县| 宁阳县| 仁布县| 乐清市| 台前县| 巧家县| 柯坪县| 胶南市| 达孜县| 门头沟区| 阿拉善右旗| 盐源县| 双桥区| 荥经县| 瑞丽市| 桂林市| 封丘县| 昆山市| 共和县| 荥经县| 霍邱县| 五台县| 柳江县| 乡宁县| 河源市| 宿松县| 察隅县| 丰县| 林芝县| 道真| 涡阳县| 苍山县| 靖西县| 黎平县| 禄丰县| 洛隆县| 白玉县|