CherryPick:Adaptively Unearthing the Best Cloud Configurations for Big Data Analytics(NSDI2017)
Abstract 為在雲中執行的重複出現的大資料分析作業選擇正確的雲配置是很困難的, 因為可能有數十種可能的 vm 例項型別, 甚至還有更多的群集大小可供選擇。選擇不良會顯著降低效能, 並將執行作業的成本平均增加2-3 倍, 在最壞的情況下甚至高達12倍。然而, 以低的搜尋成本自動確定適用於各種應用程式和雲配置的最佳配置是一項挑戰。cherrypick 是一個利用貝葉斯優化為各種應用構建效能模型的系統, 這些模型的結構足以區分最佳配置或接近最佳的配置, 只需幾個測試執行。我們在AWS EC2中的五個分析應用程式上的實驗表明, cherrypick 有45-90% 的機會找到最佳配置, 或是接近最佳, 與現有解決方案相比, 可節省高達75% 的搜尋成本。
Introduction
執行在雲上的大資料分析正在迅速增長, 並已成為幾乎每個行業的關鍵。為了支援各種用例, 許多不斷髮展的技術被用於資料處理, 例如 Map- Reduce, SQL-like languages, Deep Learning, and in- memory analytics。此類大資料分析應用程式的執行環境在結構上是相似的: 一組虛擬機器 (vm)。但是, 由於不同的分析作業具有不同的行為和資源要求 (cpu、記憶體、磁碟、網路), 因此它們的雲配置 (vm 例項型別和 vm 的數量) 不能簡單地統一。
為應用選擇正確的雲配置對於服務質量和商業競爭力至關重要。例如, 對於相同的效能目標, 糟糕的雲配置可能會導致高達12倍的成本。對於重複執行類似工作負載的重複作業[10,17],從適當的雲配置進行儲存更為重要。儘管如此, 選擇最佳的雲配置 (例如最便宜或最快) 仍很困難, 因為要同時實現高精度、低開銷和適應不同應用和工作負載的複雜性。
Accuracy:應用程式的執行時間和成本與雲環境的資源、輸入工作負載、內部工作流和應用程式的配置配置有著複雜的關係。很難用直接的方法來模擬這種關係。此外, 雲動力學 (cloud dynamics ), 如網路擁塞和straggler引入大量的噪聲 [23, 39]。
Overhead:Brute-force(蠻力)搜尋最佳的雲配置是昂貴的。分析應用程式的開發人員通常面臨廣泛的雲配置選擇。例如, amazon ec2 和 microsoft azure 提供了40多種 vm 例項型別, 具有各種 cpu、memory、磁碟和網路選項。google 提供了18種類型, 還允許自定義虛擬機器的記憶體和 cpu 核心的數量 [2]。此外, 開發人員還需要選擇合適的群集大小。
Adaptivity:大資料應用程式在其資料處理管道中具有不同的內部體系結構和依賴關係。手動學習構建單個應用程式效能模型的內部結構是不可擴充套件的。
現有的解決辦法並不能充分解決所有面臨的挑戰 。例如,Ernest[37]用少量的樣本為機器學習應用程式訓練效能模型,但是由於它的效能模型與機器學習作業的特定結構緊密繫結,因此它不能很好地用於SQL查詢(適應性差)之類的應用程式。此外,Ernest只能選擇給定例項族中的VM大小,並且需要為每個例項族重新訓練效能模型。
在本文中, 我們介紹了 cherrypick 系統, 該系統可重新部署最佳或接近最佳的雲配置, 從而最大限度地降低雲使用成本, 保證應用效能, 並限制重新產生大資料分析作業的搜尋開銷。每個配置都會顯示虛擬機器的數量、cpu 計數、每個核心的 cpu 速度、每個核心的 ram、磁碟計數、磁碟速度和虛擬機器的網路工作容量。
CherryPick的關鍵思想是建立一個足夠精確的效能模型,以便我們能夠從其他配置中區分出接近最優的配置。模型的不精確性的容錯性使我們能夠實現低開銷和自適應性:只需要很少的樣本,並且不需要將特定於應用程式的洞察嵌入到建模中。
cherrypick 利用貝葉斯優化 (Bo) [13, 28, 33], 一種優化黑盒函式的方法。由於它是非引數化的, 因此它沒有任何預定義的效能模型格式。Bo 估計每個候選雲配置下的成本和執行時間的置信區間 (實際值應以很高的概率進入的範圍)。隨著更多樣本的出現, 置信區間得到了改善 (變窄)。cherrypick 可以判斷應該對哪些雲配置進行取樣, 以最好地減少當前建模中的不確定性, 並接近最佳。cherrypick 使用置信區間來決定何時停止搜尋。第3節提供了更多詳細資訊, 說明 Bo是如何工作的, 以及我們為什麼從其他替代方法中選擇 Bo。
要將Bo 整合到 cherrypick 中, 我們需要執行多個自定義 (第3.5 節): i) 選擇雲配置的功能, 以最大限度地減少搜尋步驟;ii) 處理由cloud dynamics引起的取樣資料中的噪聲;iii) 選擇初始樣品;和 iv) 定義停止標準。
我們對 amazon ec2 上的66個配置的五個熱門分析工作進行了cherrypick 評估。cherrypick 有很高的機會 (45%-90%) 選擇最佳配置, 否則可以找到一個近乎最佳的 so-lution (在5% 以內的中位), 而替代的解決方案, 如座標下降和隨機搜尋可以佔用高達多75% 的執行時間和多45%的搜尋成本(take up to 75% more running time and 45% more search cost)。我們還將 cherrypick 與 ernest [37] 進行了比較, 並展示了 cherrypick 如何將 sql 查詢的搜尋時間縮短 90%, 將搜尋成本減少75%(We also compare CherryPick with Ernest [37] and show how CherryPick can improve search time by 90% and search cost by 75% for SQL queries.)。
2 Background and Motivation
在本節中, 我們將展示選擇最佳雲配置的好處和挑戰。我們還提出了兩個政治家解決方案來解決這個問題。
2.1Benefits
良好的雲配置可以大大減少分析工作的成本。表1顯示了配置的算術平均值和最大執行成本,與跨66個候選配置的四個應用程式的最小執行成本配置相比。這些應用程式的細節及其雲配置請求在第5節中描述。例如,對於大型資料基準TPC-DS,平均配置成本是具有最小開銷的配置的3.4倍;如果使用者碰巧選擇了最差的配置比例,則會花費9.6倍以上。
選擇一個好的雲配置對於重複執行類似工作負載(例如,每日日誌解析)的重複作業甚至更為重要。最近的研究報告顯示,多達40%的分析工作正在重現(10, 17)。我們的方法只適用於重複作業,其中配置搜尋的成本可以在許多後續執行中被攤銷。
2.2 Challenges
為大資料分析工作挑選最佳雲配置有幾個挑戰。
Complex performance model:(複雜性能模型)執行時間受雲配置中資源量的非線性影響。例如,如圖1所示,SparkML(具有固定數量的CPU核心)上的迴歸作業在256GBRAM上執行時間返回減少。這是因為工作並不能從更多的RAM中獲益。因此,執行時間只能看到邊際改善。
此外,雲配置下的效能不是確定性的。在許多租戶之間共享的雲環境中, stragglers可能會發生。在AWS EC2的22種不同雲構型上,我們測量了TrasoRT-30GB的執行時間五次。然後,我們計算的變異係數(CV)的五個執行。我們的結果表明,CV的中位數約為10%,90的百分位數在20%以上。這種變化不是新的[ 17 ]。
Cost model: 雲根據虛擬機器的啟動時間向用戶收費。使用具有大量資源的配置可以最大限度地減少執行時間, 但可能需要花費更多的資金。因此, 為了最大限度地降低成本, 我們必須在資源價格和執行時間之間找到適當的平衡。圖2顯示了在不同的群集大小上對 sparkml 執行迴歸的成本, 其中每個 vm 在 aws ec2 中附帶 15個 gb 的 ram 和4個核心。我們可以看到, 當我們向叢集中新增更多資源時, 成本不會單調增加或減少。這是因為新增資源可能會加快計算速度, 但也會提高執行時間的單位價格。
The heterogeneity of applications:圖3顯示了 spark 上 tpc-ds 和迴歸的不同形狀, 以及它們與例項型別的關係。對於 terasort, 低記憶體例項 (8 核和 15 gb 的 ram) 執行得最好, 因為 cpu 是一個更關鍵的資源。另一方面, 對於迴歸, 由於缺乏 ram, 同一群集的執行時間是最佳候選群集的2.4倍。此外, 最佳選擇通常取決於應用配置, 例如, 在 yarn 中的對映數量和減少任務。我們確定最佳雲配置的工作是對確定最佳應用程式配置的其他工作的補充 (例如, [19、38])。cherrypick 可以使用任何 (甚至不是最佳) 應用程式配置。
8 conclusion
我們提供 cherrypick, 這是一項以高精度和低開銷選擇近乎最佳的雲配置的服務。cherrypick 自適應地並自動為特定應用程式和雲配置構建效能模型, 這些模型的準確性足以消除其他配置的最佳或近乎最佳的配置。我們在 amazon ec2 上對5個廣泛使用的基準工作負載進行的實驗表明, cherrypick 選擇最佳或接近最佳的配置, 其搜尋成本比現有解決方案低得多。