MaxCompute Spark 資源使用優化祥解
本文作者:吳數傑 阿里雲智能 開發工程師 1. 概述 本文主要講解MaxCompute Spark資源調優,目的在於在保證Spark任務正常運行的前提下,指導用戶更好地對Spark作業資源使用進行優化,極大化利用資源,降低成本。 2. Sensor Sensor提供了一種可視化的方式監控運行中的Spark進程,每個worker(Executor)及master(Driver)都具有各自的狀態監控圖,可以通過Logview中找到入口,如下圖所示: 打開Sensor之後,可以看到下圖提供了Driver/Executor在其生命週期內的CPU和內存的使用情況: cpu_plan/mem_plan(藍線)代表了用戶申請的CPU和內存計劃量 用戶可以直觀地從cpu_usage圖中看出任務運行中的CPU利用率 mem_usage代表了任務運行中的內存使用,是mem_rss和page cache兩項之和,詳見下文 Memory Metrics mem_rss 代表了進程所佔用了常駐內存,這部分內存也就是Spark任務運行所使用的實際內存,通常需要用戶關注,如果該內存超過用戶申請的內存量,就可能會發生OOM,導致Driver/Executor進程終止。此外,該曲線也可以用於指導用戶進行內存優化,如果實際使用量遠遠小於用戶申請量,則可以減少內存申請,極大化利用資源,降低成本。 mem_cache(page_cache)用於將磁盤中的數據緩存到內存中,從而減少磁盤I/O操作,通常由系統進行管理,如果物理機內存充足,那麼mem_cache可能會使用很多,用戶可以不必關心該內存的分配和回收。 […]