速度太快上一個 Linux 為基礎的虛擬機器,在虛擬伺服器 2005 R2 中裝載執行系統時間

文章翻譯 文章翻譯
文章編號: 918461 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

徵狀

您在 Microsoft 虛擬 Server 2005 R2 中安裝 Linux 為基礎的虛擬機器之後系統時間 Linux 客用作業系統中的執行速度太快。比方說 Linux 客用作業系統中目前的時間可能會由一分鐘大約每隔 48 秒前進。段時間後 Linux 為基礎的虛擬機器將時鐘重設為正確的時間。

如果您正在執行使用 Linux 2.6 核心的 Linux 散發,您會遇到這個問題。

發生的原因

預設演算法 Linux 2.6 核心中的調整可能損失的計時器刻度,就會發生這個問題。 因為這項調整的虛擬機器可能會取得時間。

解決方案

若要解決這個問題,加入 時鐘 = Pit Linux 開機檔的參數。時鐘 = Pit 參數會造成 Linux 2.6 核心使用更有效率的演算法來同步處理虛擬機器和主機電腦之間的時間。這個演算法並不會作調整為遺失的刻度。因此,演算法並不會造成虛擬機器,以取得時間。若要將這個參數請依照下列步驟執行。

對於 GRUB 開機

  1. 客用作業系統系統中使用文字編輯器 (例如 Vi 來開啟 /boot/grub/menu.lst 檔案。比方說中輸入下列命令,從一個主控台,並按下 ENTER:
    vi /boot/grub/menu.lst
    這個檔案包含 Linux 開機選項,如下所示:
    title Linux
       kernel (hd0,4)/vmlinuz root=/dev/hda7 vga=791
       initrd (hd0,4)/initrd
    title windows
       root (hd0,0)
       makeactive
       chainloader +1
    title floppy
       root (fd0)
       chainloader +1
    title failsafe
       kernel (hd0,4)/vmlinuz.shipped root=/dev/hda7 ide=nodma apm=off acpi=off vga=normal nosmp maxcpus=0 3
       initrd (hd0,4)/initrd.shipped
  2. 在這個檔案的而 標題 Linux] 區域中新增 時鐘 = Pit 參數到核心項目。此區域應該如下所示:
    title Linux
       kernel (hd0,4)/vmlinuz root=/dev/hda7 vga=791 clock=pit
       initrd (hd0,4)/initrd
  3. 將變更儲存至檔案、 結束 Vi,並重新啟動 Linux 為基礎的虛擬機器。

對於 LILO 開機

  1. 客用作業系統系統中使用文字編輯器 (例如 Vi 來開啟 /etc/lilo.conf 檔案。比方說中輸入下列命令,從一個主控台,並按下 ENTER:
    vi /etc/lilo.conf
    這個檔案包含 Linux 開機選項,如下所示:
    ### LILO global section 
    boot    = /dev/hda           # LILO installation target: MBR 
    vga     = normal             # normal text mode (80x25 chars) 
    read-only 
    
    lba32                        # Use BIOS to ignore 
                                 # 1024 cylinder limit 
    prompt 
    password = q99iwr4           # LILO password (example) 
    timeout = 80                 # Wait at prompt for 8 s before 
                                 # default is booted 
    message = /boot/message      # LILO's greeting 
    
    ### LILO Linux section (default) 
      image  = /boot/vmlinuz     # Default 
      label  = linux 
      root   = /dev/hda7         # Root partition for the kernel 
      initrd = /boot/initrd 
    
    ### LILO Linux section (fallback) 
      image  = /boot/vmlinuz.shipped 
      label  = Failsafe 
      root   = /dev/hda7 
      initrd = /boot/initrd.suse 
      optional 
    
    ### LILO other system section (Windows) 
      other  = /dev/hda1         # Windows partition 
      label  = windows 
    
    ### LILO memory test section (memtest) 
      image  = /boot/memtest.bin 
      label  = memtest86
  2. 這個檔案的 [### LILO Linux 區段 (預設)] 區域中鍵入 [下列項目]:
    附加 ="時鐘 = pit"
    此區域應該如下所示:
    ### LILO Linux section (default) 
      image  = /boot/vmlinuz     # Default 
      label  = linux 
      root   = /dev/hda7         # Root partition for the kernel 
      initrd = /boot/initrd
      Append = "clock=pit"
  3. 將變更儲存至該檔案,然後結束 Vi。
  4. 執行 lilo 命令。比方說中輸入下列命令並按下 ENTER:
    / sbin/lilo
  5. 重新啟動 Linux 為基礎的虛擬機器。

其他相關資訊

虛擬機器通常會有困難與實體主機電腦同步時間。雖然 Microsoft 虛擬 Server 2005 新增虛擬機器的目的是要以協助修正這個問題,您可能會遇到時間同步處理問題是由於在客用作業系統會追蹤的系統時間的方式。每種作業系統都有它自己的方式追蹤的系統時間。 Linux 2.6 核心使用三種不同的演算法來追蹤的系統時間。這些演算法是比 Linux 2.4 核心和較早的 Linux kernels 使用的演算法更有效率。

在虛擬機器中的時間同步處理

作業系統通常會藉由使用特定的硬體裝置所產生的定期時間插斷追蹤時間。通常,作業系統取得時間從電池供電免費金屬氧化物 Semi-conductor (CMOS) 時鐘作業系統的啟動程序期間。作業系統然後設定計時器裝置,以產生定期的插斷。作業系統會追蹤的時間來計算這些插斷。

虛擬機器主機作業系統和客用作業系統,就被共用一個實際的實體硬體。當虛擬機器產生時間插斷時,客用作業系統可能正在執行,或是可能無法執行。因此,客用作業系統不會不立即帳戶有某些這些插斷。如果要解決這個問題,虛擬機器會保留這些插斷的積存。此外,虛擬機器執行時會增加計時器插斷的頻率。增加的計時器插斷的頻率被為了幫助客用作業系統維護正確的時間。不過,增加這些插斷的頻率導致客用作業系統系統錯過某些插斷。這些遺漏的插斷都稱為 「 遺失刻度]。 遺失原因客用作業系統時間刻度背後實際時間延隔時間。雖然您可能會遇到這個問題在實體電腦上,您很多可能會遇到這個問題在虛擬機器執行一個來賓作業系統中。

Linux 2.4 核心及更早 Linux kernels 依賴計時器會傳遞的計時器插斷。 針對 Linux 2.4 核心中的時間同步處理實作的演算法不負責遺失的刻度。這種行為可能會導致將 Linux 來賓操作系統時間背後實際時鐘延隔時間。為了解決這個問題,Linux 分配,某些修補 Linux 2.4 核心以更快的速度傳遞計時器插斷。不過,的 Linux 客用作業系統可能仍然的時間同步處理問題因為遺失刻度。

Linux 2.6 核心實作更有效率的演算法,以解決這個時間同步處理問題。不同於 Linux 2.4 的演算法 Linux 2.6 演算法調整為遺失的刻度。然而,這項調整可能會造成 Linux 為基礎的虛擬機器來取得時間。[Linux 2.6 核心有三個不同的時鐘參數可以傳遞至核心,在開機時。使用這些參數來選取要用於同步處理時間演算法。如需有關這些演算法的詳細資訊,請參閱在 Linux 設定 Timekeeping > 一節。每個這些 timekeeping 演算法都有優點和缺點。但是,您很多可能會注意到在實體電腦上比虛擬機器上的缺點。

電腦計時器硬體

每個作業系統必須有自己的方法來處理 timekeeping 問題。有各種不同種類的計時器機制用來保留電腦上的時間。這些計時器機制包括下列各項:
  • 可程式化間隔計時器 (PIT)
  • CMOS 即時時鐘 (RTC)
  • 本機進階可程式化中斷控制器 (APIC) 計時器
  • 進階設定及電源介面 (ACPI) (此機制也稱為是晶片組 Timer)。
  • 時間戳記計數器 (TSC)
  • 最高的精確度事件計時器 (HPET)

在 Linux timekeeping

x86 型的平上,台 Linux 2.6 核心下列幾種來追蹤時間的時鐘與互動:
  • 電源管理計時器 (PMTMR)
    這個時鐘具有下列特性:
    • 這個時鐘使用來設定 時鐘 = pmtmr 核心參數。
    • 這個時鐘使用 ACPI 計時器。
    • 這個時鐘可能會造成較小的時間可獲得。
  • 時間戳記計數器 (TSC)
    這個時鐘具有下列特性:
    • 這個時鐘使用來設定 時鐘 = tsc 核心參數。(這是預設參數)。
    • 這個時鐘使用的時間內插補點 PIT 計數器和 [TSC。
    • 這個時鐘可能會造成 overcorrection 一個虛擬機器的環境資訊。因此,客用作業系統時鐘可能執行速度太快。
    • 這個時鐘可能會造成 10%的時間可獲得。
  • 可程式化間隔計時器 (PIT)
    這個時鐘具有下列特性:
    • 這個時鐘使用來設定 時鐘 = Pit 核心參數。
    • 這個時鐘使用只 PIT 計數器的時間內插補點。
    • 這個時鐘使用最簡單的可使用的演算法。
    • 這個時鐘不會取得時間,因為它並不會使用遺失的刻度校正程式碼。
如需有關 Virtual Server 2005 的詳細資訊,請造訪下列 Microsoft 網站 (英文):
http://www.microsoft.com/windowsserversystem/virtualserver/default.mspx
在本文所討論的協力廠商產品是由 Microsoft 以外的公司所製造的。Microsoft 可讓不以暗示或其他方式,效能或可靠性這些產品的保證。

屬性

文章編號: 918461 - 上次校閱: 2006年5月4日 - 版次: 1.1
這篇文章中的資訊適用於:
  • Microsoft Virtual Server 2005 R2 Standard Edition
  • Microsoft Virtual Server 2005 R2 Enterprise Edition
關鍵字:?
kbmt kbtshoot kbenv kbdeployment kbprb KB918461 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:918461
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com