Virtual-Machine

VM 來賓系統是否僅在 VM 的程序在主機上調度時才執行?

  • August 11, 2016

我正在準備一個在雲上執行的企業軟體包,但我面臨的問題是軟體包在我們目前的部署中作為實時程序執行。沒有人真正確定係統是否真的有必要,但他們都強烈建議這樣做。

然而,在雲服務上執行,我們的虛擬機將與其他十幾個(可能數百個?)共享一個主機,即使我可以將程序設置為在虛擬機內實時調度,虛擬機本身仍然具有正常的優先級在主機上。那是對的嗎?虛擬化軟體是否被安排為主機上的任何其他程序?

就主機而言,VM 是一個與任何其他程序一樣被調度的程序。最後,每個處理器(每個核心)一次只能執行一個程序。主機的調度程序決定它是哪一個。

據我所知,通常用於雲服務的虛擬機技術都沒有提供實時保證。製造具有實時保證的虛擬機絕對是可能的,但這是有代價的——其他程序獲得的 CPU 時間更少。成本/收益通常與雲託管的目標不匹配,即在許多競爭者之間攤銷資源,以使處理器不會閒置太久。

如果您想要實時保證,那將是一項與基本雲託管完全不同的服務,而且您需要付費。由於將多個實時流程放在一起往往需要整體視圖以確保所有流程都在截止日期前完成,因此您很可能最終會在專用硬體上以您想要的方式執行您的東西。

雲和實時確實讓我覺得這是一個奇怪的組合。在雲服務上執行的任務只有在您下載響應後才能完成,並且對於需要實時響應的端點與雲服務之間的通信,您通常不會有任何服務保證。實時計算通常必須保持在您控制的網路邊界內,在那裡您可以保證吞吐量和延遲。

引用自:https://unix.stackexchange.com/questions/302631