網際網路應用和現代資料中心
雲計算已經火了很多年了,早已開始惠及我們每乙個人。今天火熱的大資料、機器學習、人工智慧、以及你們看到的幾乎所有的大規模的網際網路應用(**、天貓、優酷等),都是執行在雲上的。而支撐雲的,是大型雲計算服務商部署在世界各地的多個資料中心,每個資料中心都有大量的物理伺服器。為了有效地管理這些伺服器,我們需要集群資源管理系統(cluster resource management system),後面簡稱資源管理系統。資源管理系統的價值,用一句話說,是datacenter as a computer,即讓人們管理和使用資料中心,像管理和使用乙個臺電腦一樣簡單。
排程演算法的價值
排程演算法在是整個資源管理系統中的乙個重要組成部分,簡單地說,排程演算法的作用是決定乙個計算任務需要放在集群中的哪台機器上面。
在容器化的今天,集群中排程器的排程物件很可能是乙個容器例項,docker或者是pouchcontainer。為容器選擇合適的宿主機顯然是乙個值得考慮的問題,這裡我們說一說排程演算法能夠幫助我們實現的價值,這些價值可以從單個容器、到應用、再到資料中心,這三個不同的層面展示出來。
1、單個容器層面:
滿足容器執行的資源需求:確保每個容器在執行的時候擁有足夠的資源,cpu、memory、disk、網路頻寬等等。除了用數量衡量的資源,很多容器在執行的時候還需要一些特殊的資源,例如特定的作業系統版本、特定的硬體等等。
讓容器在更「舒適」的環境下執行:容器之間可能發生資源的搶占現象,例如兩個對memory消耗很大的容器部署在同一臺機器上,很容易造成memory資源的吃緊。雖然我們可以通過容器和核心提供的資源隔離技術降低這種影響,但是最好的辦法還是在一開始不讓這種「容易吵架的人做鄰居」。
2、應用層面,每個應用在提供服務的時候往往是多個容器例項同時支援的,排程器需要考慮應用的需求
應用的高可用:分布式環境下宿主機失敗或者單個容器的失敗是正常現象,因此我們要保證每個應用同時有多個例項在執行,這樣即使有乙個例項掛了,整個應用不會受很大影響。
應用的容災:容災其實也經常和高可用放在一起,如果乙個應用有多個應用例項,但是都部署在乙個機房,如果機房斷電,那麼應用也就不能提供服務了,沒有高可用了。解決這個問題需要的容災部署,也就不同維度地打散。排程演算法需要盡量讓同乙個應用的不同例項部署在不同的宿主機、不同的機架、不同的機房、不同的資料中心、不同的城市、真是不同的國家;這種容災甚至可以體現在更高一層,幾個重要應用之間的所有例項,也要盡量打散。
3、資料中心層面
降低資料中心的成本:合理的排程能夠節省資料中心大量的成本,如果用裝箱問題來表示,就是用更少的伺服器裝下了更多的應用。伺服器數目的減少不僅僅是採購成本的下降,伺服器的占地、用電、冷卻等都是一筆很大的開銷,合理的資源排程能夠為資料中心節省大量成本。
乾貨 排程演算法的價值與阿里的應用實踐
網際網路應用和現代資料中心 雲計算已經火了很多年了,早已開始惠及我們每乙個人。今天火熱的大資料 機器學習 人工智慧 以及我們看到的像 天貓 優酷等大規模的網際網路應用都是執行在雲上的。而支撐雲的,是大型雲計算服務商部署在世界各地的多個資料中心,每個資料中心都有大量的物理伺服器。為了有效的管理這些伺服...
關於Storm與JStorm的排程演算法的討論
簡介 storm有4個排程器 defaultscheduler isolationscheduler multitenantscheduler ras jstorm只有乙個排程器,但是其擁有4種模式 defaultscheduler isolationscheduler user defined s...
常用程序排程演算法的分析與評價
計算機與資訊科技 摘要本文詳細地討論了四種常用程序排程演算法的基本思想,並對其進行了分析和評價。程序排程演算法,分析,評價 1引言 程序排程是系統內部的低階排程,程序排程的策略通常有先來先服務演算法 時間片輪轉演算法 最高優先權優先排程演算法 最短程序優先排程演算法等。衡量程序排程效能通常需要從定性...