重要性能指標(biāo)參考:
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
壓力測試
壓力測試和性能測試關(guān)系緊密,壓力測試更側(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)定性測試
構(gòu)建BI仿真實驗室,模擬整個云梯跨機房項目變更流程,運行BI線一日的作業(yè),查看作業(yè)運行情況和做數(shù)據(jù)產(chǎn)出對比,驗證跨機房后數(shù)據(jù)的正確性和業(yè)務(wù)線運行時間是否受影響
總結(jié)
整個項目過程中,測試人員共發(fā)現(xiàn)有效bug 100多個,其中5個bug嚴重影響性能,10個bug可能導(dǎo)致丟數(shù)據(jù),4個bug會導(dǎo)致服務(wù)不可用
本文主要是跨機房的測試整體介紹,整個跨機房測試是一個非常復(fù)雜的過程,可能大家覺得不是很過癮,后續(xù)會進行跨機房測試經(jīng)典BUG和工具分享,敬請期待