qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

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

          閱讀本文前建議先閱讀云梯跨機房方案介紹,了解云梯跨機房項目背景,難點以及解決方案。本文重點介紹下跨機房測試的整體解決方案
            功能測試
            測試用例管理:http://kelude.taobao.net/testsuites?project_id=12202
            數據安全性測試
            數據安全簡單的說就是不能丟數據,跨機房后集群規模到達近萬臺,數據存儲到達數百PB,如何確保數據安全是一個很大的挑戰
            在跨機房的情況下,我們通過(Sange、Slive、DFSIO)模擬線上比例的各種混合性操作,通過NN的FSCK, CN的 CrossCheck工具定位異常數據如CORRUPT,一直處于BEING WRITTEN無法關閉的文件,跨機房失敗的文件
            數據安全性測試里需要考慮的一種重要場景是NN和DN重啟,在實際的升級過程中,在集群重啟前各業務線并沒有停止讀寫數據,重啟后數據的一致性和可恢復性非常重要;在實際的跨機房測試中我們曾發現一個因為重啟后狀態不一致導致無法加載EDITLOG從而使NN無法啟動的BUG,如果這種問題發生到線上,后果不堪設想
            性能測試
            性能測試的關鍵點是如何建立性能基準,對線上性能進行準確評估,跨機房測試性能基準工具主要包括:
            DFSIO:  HDFS  I/O(讀寫) 性能基準
            Slive: 主要模擬線上各種RPC,在每個TASK發起混合型RPC操作,并可以指定文件和block大小,該工具可以同時測試NN和DN的性能;
            Sange:  主要模擬線上各種RPC操作壓力,在每個TASK啟動大量Thread進行混合性RPC操作 ,對NN產生壓力,進而評估NN RPC 處理能力;SANGE工具不能指定文件和Block大小,會產生大量小文件,比SLIVE對NN可以產生更大的RPC壓力
            Terasort:MapReduce 數據排序能力基準
            Gridmix :Gridmix和Rumen結合可以模擬和生產作業相應的負載,更真實的模擬生產環境
            SmallJobBench:通過創建大量sleep job到不同group來測試jobtracker性能
            SubmitJobBench:通過每個map啟動(-nThreads)個線程,每個線程順序提交(-nTasks)個作業, 每個線程有自己的獨立賬號,來模擬線上多賬號并行度2K情況下JTProxy性能
            跨機房性能主要對比場景:
            主要針對上述場景進行性能對比和評估包括NN帶寬,內存,CPU load, NN RPC 指標, NN 各個operation的吞吐量(opsper second)和平均執行時間, NN同步editlog性能指標,跨機房帶寬流量,跨機房復制速率,跨機房副本刪除速率,CROSSFSCK時間
            跨機房測試還有很重要的一點是要保證計算一定優先從本機房讀數據,除非本機房沒有數據才會跨機房讀;實際測試中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
            壓力測試
            壓力測試和性能測試關系緊密,壓力測試更側重于在線上最大壓力的情況下系統是否可以正常工作,性能測試則側重于新上線的版本是否有性能下降問題,主要是基于基準進行性能對比
            壓力測試比較難的一點是如何在小規模的測試集群模擬線上真實的壓力,基本思路是     啟動MR程序, 每個Task啟動多個Thread,在每個thread進行大量模擬操作,NN和DN壓力測試我們可以用到SANGE和Slive,JTPROXY壓力測試可以用到SubmitJobBench,JT壓力測試可以用到SmallJobBench和GurgleClient(TaskTracker模擬器)
            跨機房壓力測試主要是評估crossnode的自身壓力和crossnode對namenode、datanode的壓力影響;crossnode對namenode壓力主要體現在RPC的請求,對datanode的壓力目前主要體現在帶寬和磁盤上
            數據準備:利用SLIVE工具產生跟線上一樣數量的Block和文件數
            跨機房壓力主要場景:
            穩定性測試
            構建BI仿真實驗室,模擬整個云梯跨機房項目變更流程,運行BI線一日的作業,查看作業運行情況和做數據產出對比,驗證跨機房后數據的正確性和業務線運行時間是否受影響
            總結
            整個項目過程中,測試人員共發現有效bug 100多個,其中5個bug嚴重影響性能,10個bug可能導致丟數據,4個bug會導致服務不可用
            本文主要是跨機房的測試整體介紹,整個跨機房測試是一個非常復雜的過程,可能大家覺得不是很過癮,后續會進行跨機房測試經典BUG和工具分享,敬請期待

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


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


          網站導航:
           
          <2013年11月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 隆化县| 合阳县| 宜昌市| 天柱县| 麻江县| 东明县| 陈巴尔虎旗| 嘉禾县| 谢通门县| 延吉市| 内江市| 家居| 抚顺县| 诏安县| 汶上县| 喀喇沁旗| 湖北省| 东台市| 缙云县| 苗栗县| 宁强县| 黑水县| 莲花县| 静乐县| 车险| 东源县| 婺源县| 称多县| 诸暨市| 日喀则市| 义乌市| 九寨沟县| 阳泉市| 衡南县| 万荣县| 利津县| 兴义市| 同心县| 新宾| 中宁县| 社会|