OpenVZ是開源軟件,是基于linux平臺的操作系統級服務器虛擬化解決方案。OpenVZ采用SWsoft的Virutozzo虛擬化服務器軟件產品的內核,Virutozzo是SWsoft公司提供的商業虛擬化解決方案。
OpenVZ可以在單個物理服務器上創建多個隔離的虛擬專用服務器(VPS)并以最大效率共享硬件和管理資源。每個VPS的運行和獨立服務器完全一致,因其自身的用戶、應用程序都可以獨立重起,它擁有根訪問權限、用戶、ip地址、內存、處理器、文件、應用服務、系統庫文件和配置文件等。擁有輕量級處理損耗和高效設計的OpenVZ是運行應用服務和實時數據生產型服務器虛擬化的最佳選擇。
簡而言之,OpenVZ的主機說“256MB的保證”,它實際上意味著約232MB的“PRivvmpages”,14M的“kmemsize”和其他雜項資源。當應用程序調用 malloc()分配的內存將被添加到“privvmpages”。當“privvmpages”超過限制,malloc()將失敗并返回一個NULL。當主機服務器內存用光了,然后虛擬環境下的進程超過 “oomguarpages”的將被終止。
OpenVZ的內存管理方法既有問題也有優勢。最大的問題之一是內存容量的應用程序使用的內存和應用程序實際上分配到的內存是不同的,不同的應用程序他們的差別可能會很大。以java為例,它通常分配一大塊的內存,但是,它可能只使用一小部分分配的內存。如果privvmpages受限,java會立即停止運行。調整參數可以解決一部分問題,但它處理得絕對沒有Xen來得干凈利落。事實上,幾乎所有使用內存分配的應用程序都會受OpenVZ這個問題的影響。
/proc/meminfo 本身也有問題。雖然OpenVZ的已經為內存進行了虛擬,但是用”free”命令依然會返回主機的內存。這樣就會使小內存的openvz的vps無法運行諸如java或者gcc編譯這樣的程序。
OpenVZ的內存模型的優點是, 它容易理解:你幾乎就只有privvmpages受限。與專用的服務器或Xen的服務器不一樣的是,你的磁盤高速緩存和頁面緩存并不計入您的總內存使用情況。因此,在一個沒有過度銷售的openvz主機上,由于擁有較大冗余的公共資源,它實際上可能會比同類規格的Xen的VPS表現更佳。
Openvz一旦內存用盡,則會突然死亡:開不出新的程序,只能等待系統資源可用。更有甚者,本來運行的好好的程序也可能因為不斷增長而超過限制,然后突然死亡。這就像開車開到70碼,然后突然撞墻上了,一般會死得很慘。
新聞熱點
疑難解答