天天看點

Spark源碼性能優化案例分析

本篇文章枚舉了幾例常見的問題并給出了優化方案,推薦了兩套測試性能優化工具

問題:

  1. Spark 任務檔案初始化調優 資源分析,發現第一個 stage 時間特别長,耗時長達 14s , CPU 和網絡通信都有一定開銷,不符合應用代碼邏輯。
  2. Spark 任務排程優化 資源分析,發現 stage2 隻有一台伺服器上的 CPU 被使用,其他伺服器 CPU 完全空閑
  3. 任務配置設定算法調優 在做 log 分析的時候,發現在 Executor 領取任務的時候,在最後總會有一兩個 Executor 領取的任務是非 local 的。比如,最後兩個任務 A [ 2,3,1] 和 B[1,3,4] , Executor [ 1][2] ,當 Executor[1] 領取了任務 A ,則 Executor [ 2] 領到的任務 B 就是非 local 的。 解決方案:對任務進行偏序排序後再配置設定 [SPARK-2193]
  4. OS 配置調優 資源分析,發現伺服器大量 CPU 資源消耗為 sys 類型 調查發現,是因為某些 Linux 版本的 t ransparent huge page 預設為 enable 狀态導緻 優化方案:關閉 OS 的 transparent huge pages Echo never > /sys/kernel/mm/ transparent_hugepage /enabled Echo never > /sys/kernel/mm/ transparent_hugepage / defrag Transparent huge page 開啟 Transparent huge page 關閉 。
  5. 網卡調優 資源分析,發現大量作業時間消耗在網絡傳輸上。

原文位址,可下載下傳 www.slidestalk.com/s/Spark3674…

繼續閱讀