BestConfig: Tapping the Performance Potential of Systems via Automatic Configuration Tuning解讀

       這是一篇關於參數配置的論文,但是感覺這篇論文讀下來存在大量的冗餘介紹,看到第六頁纔看到論文具體做了哪些工作?使用了什麼方法。但是本着強迫症要把前面也看完的態度,我來概括和解析下這篇論文。

摘要:

  1. 一個好的參數配置能夠提高部署系統在特定工作負載下的性能。
  2. 隨着配置參數的增加,大量的參數會花費大量的時間決定最佳設置。而且用戶通常不擅長調整參數達到最佳。
  3. BestConfig就是這樣一個在資源有限的條件下用已有的工作負載自動找到最佳配置參數的系統。使用兩種方法(divide and diverge(DDS)和recursive bound-and-search(RBS))。
  4. 提高tomcat吞吐量75%,提高cassandra吞吐量63%, 提高mysql吞吐量430%,減少hive join命令50%運行時間,減少spark join命令80%運行時間。

設置參數量大對應的複雜度高更容易產生配置錯誤,用戶需要配置調整找到適合的參數才能挖掘系統潛在的性能。

系統調節面臨的三個問題:

  1. 多變性, 與用戶相關的性能目標可以是吞吐量,延遲,運行時間等。在各種性能目標中,有些需要最大化,而有些則最小化。 配置調整過程還必須考慮應用程序工作負載,並且存在各種可能的工作負載。  
  2. 複雜性,不同的性能目標和運用不同的工作負載,部署的系統在特定參數配置下會有不同的性能表現。參數量大複雜度高會對參數調節產生影響。比如spark主要目的是爲了縮短運行時間,mysql的主要目標是爲了增加吞吐率。
  3. 開銷,由於沒有性能模擬器,所以樣本生成只能在部署系統中根據實際的測試,因此收集樣本需要大量的開銷,同時通過優化過程中的時間開銷也需要考慮。

BestConfig是一個自動配置調節去優化性能目標爲整體的雲系統調節參數,在資源有限的條件下推薦最好的配置。同時使用有效的寬覆蓋空間的採樣方法。爲了便於拓展到各種已經部署的系統和工作負載上,BestConfig提供了一個軟件架構,該軟件架構具有鬆散耦合但是可以拓展的特性,並採用閉環中的樣本測試樣本優化過程。 

主要貢獻:

  1. BestConfig對廣泛部署在雲上的6個系統(spark、hadoop、hive等)進行自動參數調節。
  2. 提出一個架構能很容易插入任何已知系統的測試   ,並且容易測試其他的配置調節算法。
  3. 使用兩種方法(divide and diverge(DDS)和recursive bound-and-search(RBS))確保在資源限制條件下調節整體系統配置。
  4. 通過廣泛的實驗證明了BestConfig的可行性和優勢,同時拒絕使用基於模型的通用方法的可能性,例如一般系統的線性或平滑預測模型。
  5. 即使Tomcat的雲部署具有資源完全消耗完,BestConfig仍然可以僅通過配置調整來 提高系統性能。

一些用於分佈式系統的機器學習模型對於以下分佈的複雜情況不適用,因爲維度太高,對其中內在規律很難通過機器學習模型進行學習。

圖

BestConfig的複雜架構如下圖所示,組件之間的連接是通過數據流。其中系統模擬器(system manipulator)是與目標環境中部署的SUT交互的接口,工作負載生成器可以允許插入各種目標工作負載。整個調節過程是閉環的。在給定配置限制的情況下,配置採樣器會生成資源限制允許的許多配置設置。然後使用配置設置更新SUT的配置設置。如果資源限制允許更多測試和樣本,則性能優化算法將記錄找到的配置設置,併爲下一個調整循環輸出一組新的配置約束。如果沒有資源,BestConfig輸出現在爲止最佳性能的配置設置。同時這個架構具有高拓展性,可以通過微小改變用於不同的部署系統中。

架構

 子問題:採樣和性能優化算法

採樣需要滿足的條件:廣泛覆蓋高維空間的配置參數,設置足夠小減少資源和測試成本,如果資源被拓展可以覆蓋更加廣泛範圍。

性能優化算法需要滿足的條件:在有限樣本條件下可找到配置結果;隨着提供的樣本增多,配置結果更優;不會侷限在局部最優解,可以找到全局最優解在資源充足的條件下。

 DDS和RBS:解決子問題,確保BestConfig調節的有效性

DDS:

  1. 參數空間覆蓋:有n個參數,每個參數設置k間隔區間,然後進行採樣,會有k的n次方種可能這叫做網格化,通過子空間劃分,網格化保證整個參數空間的完整覆蓋。但是隨着參數n的增加維度呈指數級增長。
  2. 資源有限:由於資源有限所以應該只關注對性能影響大的參數進行不斷的調參,不是關注所有的參數。將參數範圍劃分爲k個區間後,我們不會對所有區間進行完整組合。 相反,我們對每個參數進行間隔排列; 然後,我們調整每個參數的間隔置換並得到k個樣本。 例如,將兩個參數X和Y分別劃分爲6個範圍間隔,我們可以採用6個樣本。(如下圖所示)
  3. 可拓展性。

RBS:

  1. 約束步驟。給定初始樣本集,RBS找到具有最佳性能的點C0。 然後它要求在C0周圍的有界空間中採樣的另一組點,很有可能找到另一個具有更好性能的點(比如C1)。 然後再次在C1周圍的有界空間中進行採樣,遞歸執行以上採樣步驟,直到在樣本集中找不到具有更好性能的點。
  2. 遞歸步驟。目的是爲了不會侷限在局部最優解,可以找到全局最優解在資源充足的條件下。

結合DDS和RBS:

使用分佈函數:

公式

 其中Di表示的是D的正交子空間,m(*)函數表示勒貝格測度(是歐式距離的一種標準測量方法)。如果沒有優化空間的話該分佈函數結果爲0,如果每個維度都有優化空間的話,結果會接近於1。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章