把“數據中心”和“博弈游戲”兩個詞放在一起,你會想到什么?經濟學家們研究的“囚徒困境”?還是《魔獸世界》的用戶數據?
我們今天要講的,正是“數據中心”和“博弈游戲”的結合,但和在線游戲一點關系沒有。
今天的話題,是切實發生在數據中心的博弈——從共享的大量計算機和存儲系統中搶占資源。
即使是在算力最為充足的的公司——谷歌,員工們也常常進行這樣的博弈。
當要求提交任務的計算需求時,一些員工會夸大了他們對資源的請求,以減少與他人共享的數量。有趣的是,其他一些員工則會減少了他們的資源請求,假裝他們的任務可以輕松地在任何一臺計算機上完成。一旦他們在一臺機器上開始任務,相關的操作就會耗盡機器上所有可用的資源,并擠掉他們同事的任務。
這些伎倆看起來有點滑稽,但它直指一個真正的問題——效率低下。
2018年,全球數據中心耗電量為2050億千瓦時,幾乎和澳大利亞全境的用電量相當,約占世界總量的1%。由于服務器未被充分利用,因此大量能源被浪費掉了。一臺空閑服務器所浪費的電力相當于其峰值用電量的50%;而當服務器開始工作時,其固定的電力成本就將分攤到該工作上。
由于運行單個任務的用戶通常只占用服務器資源的20%到30%,因此多個用戶必須共享服務器以提高其利用率,從而提高其能源效率。共享還可以降低資本、運營和基礎設施成本。畢竟,不是每個人都有足夠的錢來建立自己的數據中心。
為了分配共享資源,數據中心部署有資源管理系統,根據用戶需求和系統自身目標,對可用的處理器內核、內存容量和網絡資源進行劃分。乍一看,這個任務應該很簡單,因為用戶經常有補充需求。但事實并非如此。共享在用戶之間產生了競爭,正如我們看到的谷歌員工,很可能會扭曲資源的使用。
因此,我們可以使用博弈論(game theory),即描述理性決策者之間戰略交互的數學模型,進行了一系列項目,以此來管理這些自私用戶之間的資源分配,同時最大化地提升數據中心的效率。在這種情況下,這種博弈還確實有利于解決資源分配問題。
貨幣兌換機制失效,博弈論登場
幫助一群理性和自私的用戶有效地共享資源并不僅僅是大數據時代的產物。經濟學家們幾十年來一直在這樣做。
在經濟學中,市場機制根據供求來決定資源的價格。實際上,目前不少公共數據中心就在這么做,比如Amazon EC2和Microsoft Azure。在那里,真實貨幣的轉移充當了一種工具,將用戶的動機(績效)與提供商的目標(效率)結合起來。
然而,在許多情況下,貨幣兌換機制是失效的。
讓我們考慮一個簡單的例子。
假設在你最好朋友的婚禮上,你得到了一張歌劇演出的門票,你決定把票給最喜歡該演出的人。所以你要進行所謂的第二價拍賣:讓你的朋友們為這張票出價,規定贏家支付給你第二高的出價。數學上已經證明,在這種拍賣中,你的朋友沒有動機去謊報他們對這張歌劇票的估價。
如果你不想要錢或不能讓你的朋友付你錢,你的選擇就會變得非常有限。如果你問你的朋友他們有多想去看歌劇,沒有什么能阻止他們夸大他們對門票的渴望。歌劇票只是一個簡單的例子,但在很多地方——比如谷歌的私人數據中心或學術計算機集群——金錢要不不能轉手,要不就是不該轉手,更不能以此來決定誰得到什么。
博弈論為這類問題提供了可行的解決方案——實際上它已被應用于計算機網絡和計算機系統。我們從這兩個領域獲得了靈感,但我們也必須解決它們的局限性。在計算機網絡中,有很多工作通過設計機制來管理自利的和不協調的路由器以避免擁塞。但是這些模型只考慮對單個資源網絡帶寬的爭用。在數據中心計算機集群和服務器中,有各種各樣的資源需要爭奪。
在計算機系統中,人們對考慮多種資源的資源分配機制產生了濃厚的興趣,特別是一種稱為支配資源公平性的機制。然而,這類工作僅限于性能模型和處理器與內存的比率,美國服務器租用,它們并不總是反映數據中心的真實場景。
“計算沖刺”引起“公地悲劇”
為了提出適用于數據中心的博弈論模型,我們深入研究了硬件架構的細節,從最小的層次開始:晶體管。
長期以來,晶體管在縮小體積的同時耗散的功率越來越小,部分原因是降低了工作電壓。然而,到2005年左右,這種被稱為登納德縮放比例的定律已被打破。