vSphere Client效能索引標籤顯示了可用於分析記憶體使用量的多個度量。

某些記憶體度量用於衡量客體實體記憶體,而有些用於衡量機器記憶體。例如,可以使用效能度量進行檢查的兩種記憶體使用量為客體實體記憶體和機器記憶體。可以使用 [授與的記憶體] 度量 (對於虛擬機器) 或 [共用的記憶體] (對於主機) 來衡量客體實體記憶體。但是,若要衡量機器記憶體,請使用 [耗用的記憶體] (對於虛擬機器) 或 [共用的一般記憶體] (對於主機)。瞭解這些類型的記憶體使用量之間的概念差異,對於瞭解這些度量的衡量對象以及如何進行解釋十分重要。

VMkernel 會將客體實體記憶體對應到機器記憶體,但它們並不總是一對一對應。它可能會將客體實體記憶體的多個區域對應到機器記憶體的同一區域 (當存在記憶體共用時),或者未將客體實體記憶體的特定區域對應到機器記憶體 (當 VMkernel 換出或佔用客體實體記憶體時)。在這些情況下,個別虛擬機器或主機的客體實體記憶體使用量和機器記憶體使用量的計算方法有所不同。

請考慮下圖中的範例,該圖顯示了在某台主機上執行的兩個虛擬機器。每個區塊代表 4 KB 記憶體,每個色彩/字母代表相應區塊上不同的資料集。

圖 1. 記憶體使用量範例

此圖說明了兩台虛擬機器之記憶體使用量的範例。

可以按照如下方式確定虛擬機器的效能度量:

  • 若要判定虛擬機器 1 的 [授與的記憶體] (對應到機器記憶體的客體實體記憶體數量),請計算虛擬機器 1 的客體實體記憶體中的區塊 (含有指向機器記憶體的箭頭) 數目,然後乘以 4 KB。由於有五個區塊含有箭頭,因此 [授與的記憶體] 是 20 KB。
  • [耗用的記憶體] 是配置給虛擬機器的機器記憶體數量,包括從共用記憶體中節省的記憶體數量。首先,計算機器記憶體中的區塊 (含有從虛擬機器 1 的客體實體記憶體指出的箭頭) 數目。此類區塊有三個,但其中一個區塊與虛擬機器 2 共用。因此,計算兩個完整的區塊加上第三個區塊的一半,然後乘以 4 KB,最終得到總量為 10 KB 的 [耗用的記憶體]。
這兩個度量之間的重要差異是:[授與的記憶體] 計算在客體實體記憶體層級包含箭頭的區塊數目,[耗用的記憶體] 計算在機器記憶體層級包含箭頭的區塊數目。由於存在記憶體共用,這兩個層級的區塊數目有所不同,因此 [授與的記憶體] 和 [耗用的記憶體] 也不同。透過共用或其他回收技術節省了記憶體。
在判定主機的 [共用的記憶體] 和 [共用的一般記憶體] 時,會取得類似的結果。
  • 主機的 [共用的記憶體] 是每個虛擬機器 [共用的記憶體] 的總和。透過查看每個虛擬機器的客體實體記憶體,並計算含有指向機器記憶體區塊 (機器記憶體區塊本身也含有多個指向自己的箭頭) 的箭頭的區塊數量,進而計算出共用的記憶體。在此範例中,此類區塊有六個,因此,主機的 [共用的記憶體] 為 24 KB。
  • [共用的一般記憶體] 是由虛擬機器共用的機器記憶體數量。若要判定一般記憶體,請查看機器記憶體,並計算含有多個指向自己的箭頭的區塊數量。此類區塊有三個,因此,[共用的一般記憶體] 為 12 KB。
[共用的記憶體] 涉及到客體實體記憶體,即箭頭的起點。而 [共用的一般記憶體] 涉及到機器記憶體,即箭頭的目標點。

用於衡量客體實體記憶體和機器記憶體的記憶體度量可能會出現矛盾。實際上,它們衡量的是虛擬機器記憶體使用量的不同方面。透過瞭解這些度量之間的差異,可以更好地使用它們來診斷效能問題。