Η ώρα συστήματος εκτελείται πολύ γρήγορα σε ένα με βάση το Linux εικονικής μηχανής που φιλοξενείται στο Virtual Server 2005 R2

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 918461 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Συμπτώματα

Μετά την εγκατάσταση μιας εικονικής μηχανής που βασίζεται στο Linux στο Microsoft Virtual Server 2005 R2, η ώρα συστήματος του λειτουργικού συστήματος Linux guest εκτελείται πολύ γρήγορα. Για παράδειγμα, η τρέχουσα ώρα στο λειτουργικό σύστημα Linux guest μπορεί να προχωρήσει από ένα λεπτό περίπου κάθε 48 δευτερόλεπτα. Μετά από λίγη ώρα, η εικονική μηχανή που βασίζεται στο Linux επαναφέρει το ρολόι στη σωστή ώρα.

Αντιμετωπίζετε αυτό το ζήτημα, εάν εκτελείτε μια διανομή Linux που χρησιμοποιεί ο πυρήνας Linux 2.6.

Αιτία

Αυτή η συμπεριφορά προκύπτει επειδή ο προεπιλεγμένος αλγόριθμος του πυρήνα του Linux 2.6 ρυθμίζει την πιθανή απώλεια των κτύπων χρονιστή. Εξαιτίας αυτής της ρύθμισης, η εικονική μηχανή μπορεί να αποκτήσει χρόνου.

Προτεινόμενη αντιμετώπιση

Για να επιλύσετε αυτό το ζήτημα, προσθέστε τορολόι = φρέατοςη παράμετρος στο αρχείο bootloader Linux. Για ναρολόι = φρέατοςη παράμετρος προκαλεί τον πυρήνα του Linux 2.6 να χρησιμοποιήσει έναν αλγόριθμο πιο αποτελεσματική για το συγχρονισμό ώρας μεταξύ της εικονικής μηχανής και του κεντρικού υπολογιστή. Αυτός ο αλγόριθμος δεν προσαρμόζεται για απώλεια υποδιαιρέσεις. Επομένως, ο αλγόριθμος δεν προκαλεί την εικονική μηχανή για να αποκτήσετε τη φορά. Για να προσθέσετε αυτήν την παράμετρο, ακολουθήστε τα εξής βήματα.

Για το bootloader GRUB

  1. Στο λειτουργικό σύστημα των επισκεπτών, ανοίξτε το αρχείο /boot/grub/menu.lst χρησιμοποιώντας ένα πρόγραμμα επεξεργασίας κειμένου, όπως το Vi. Για παράδειγμα, πληκτρολογήστε την ακόλουθη εντολή από μια κονσόλα, και στη συνέχεια πιέστε το πλήκτρο 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Προσθήκη περιοχής αυτού του αρχείου, τορολόι = φρέατοςη παράμετρος για την εγγραφή του πυρήνα. Αυτή η περιοχή θα πρέπει να μοιάζουν με τα εξής:
    title Linux
       kernel (hd0,4)/vmlinuz root=/dev/hda7 vga=791 clock=pit
       initrd (hd0,4)/initrd
  3. Για να αποθηκεύσετε τις αλλαγές στο αρχείο, κλείστε Vi και στη συνέχεια ξεκινήστε πάλι την εικονική μηχανή που βασίζεται στο Linux.

Για το LILO bootloader

  1. Στο λειτουργικό σύστημα των επισκεπτών, ανοίξτε το αρχείο /etc/lilo.conf χρησιμοποιώντας ένα πρόγραμμα επεξεργασίας κειμένου, όπως το Vi. Για παράδειγμα, πληκτρολογήστε την ακόλουθη εντολή από μια κονσόλα, και στη συνέχεια πιέστε το πλήκτρο 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 (προεπιλογή)περιοχή αυτού του αρχείου, πληκτρολογήστε την ακόλουθη καταχώρηση:
    Προσάρτηση = "ρολόι = φρέατος"
    Αυτή η περιοχή θα πρέπει να μοιάζουν με τα εξής:
    ### 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 Virtual Server 2005 εικονικής μηχανής προσθήκες έχουν σχεδιαστεί για να σας βοηθήσει να διορθώσετε αυτό το ζήτημα, ενδέχεται να αντιμετωπίσετε προβλήματα συγχρονισμού ώρας εξαιτίας του τρόπου που φιλοξενούμενο λειτουργικό σύστημα διατηρεί παρακολούθηση των την ώρα του συστήματος. Κάθε λειτουργικό σύστημα έχει το δικό του τρόπο για να παρακολουθείτε την ώρα του συστήματος. Ο πυρήνας Linux 2.6 χρησιμοποιεί τρία διαφορετικά είδη αλγόριθμους για να παρακολουθείτε την ώρα του συστήματος. Αυτοί οι αλγόριθμοι είναι πιο αποτελεσματική από τους αλγορίθμους που χρησιμοποιούνται από τον πυρήνα του Linux 2.4 και προηγούμενες πυρήνων Linux.

Ο συγχρονισμός ώρας σε μια εικονική μηχανή

Ένα λειτουργικό σύστημα παρακολουθεί γενικά χρόνο χρησιμοποιώντας τις διακοπές περιοδικές χρόνου που δημιουργούνται από μια συγκεκριμένη συσκευή υλικού. Γενικά, ένα λειτουργικό σύστημα αποκτά τη φορά από ένα ρολόι κολακευτικά Semi-conductor μεταλλικού μέταλλο (CMOS) ασφαλείας μπαταρίας κατά τη διάρκεια της διαδικασίας εκκίνησης του λειτουργικού συστήματος. Το λειτουργικό σύστημα, στη συνέχεια, ρυθμίζει μια συσκευή χρονιστή για τη δημιουργία περιοδικές διακοπές. Το λειτουργικό σύστημα διατηρεί παρακολούθηση των χρόνο μετρώντας αυτές τις διακοπές.

Για μια εικονική μηχανή στο πραγματικό φυσικό υλικό γίνεται κοινή χρήση από το λειτουργικό σύστημα του κεντρικού υπολογιστή και από το λειτουργικό σύστημα των επισκεπτών. Όταν μια εικονική μηχανή δημιουργεί μια ώρα διακοπής, φιλοξενούμενο λειτουργικό σύστημα ενδέχεται να εκτελούνται ή μπορεί να μην εκτελείται. Therefore, the guest operating system does not immediately account for some of these interrupts. To work around this issue, the virtual machine keeps a backlog of these interrupts. Additionally, the virtual machine increases the frequency of timer interrupts when it is running. The increased frequency of timer interrupts is intended to help the guest operating system maintain the correct time. However, the increased frequency of these interrupts could cause the guest operating system to miss some of the interrupts. These missed interrupts are known as "lost ticks." Lost ticks cause the guest operating system time to lag behind the actual time. Although you may experience this issue on a physical computer, you are more likely to experience this issue in a guest operating system that is running on a virtual machine.

The Linux 2.4 kernel and earlier Linux kernels rely on the timer interrupts that are delivered by the timer. The algorithms that are implemented for time synchronization in the Linux 2.4 kernel do not account for lost ticks. This behavior may cause the Linux guest operating system time to lag behind the actual clock. To help resolve this issue, some Linux distributions patch the Linux 2.4 kernel to deliver timer interrupts at a faster rate. However, the Linux guest operating system could still experience time synchronization issues because of lost ticks.

The Linux 2.6 kernel implements more efficient algorithms to resolve this time synchronization issue. Unlike the Linux 2.4 algorithms, the Linux 2.6 algorithms adjust for lost ticks. However, this adjustment may cause the Linux-based virtual machine to gain time. The Linux 2.6 kernel has three different clock parameters that can be passed to the kernel at boot time. Use these parameters to select the algorithms to use for time synchronization. For more information about these algorithms, see the "Timekeeping in Linux" section. Each of these timekeeping algorithms has advantages and disadvantages. However, you are more likely to notice disadvantages on a virtual machine than on a physical computer.

Computer timer hardware

Every operating system has its own method to handle timekeeping issues. There are various kinds of timer mechanisms that are used to keep time on a computer. These timer mechanisms include the following:
  • Programmable Interval Timer (PIT)
  • CMOS Real Time Clock (RTC)
  • Local Advanced Programmable Interrupt Controller (APIC) Timers
  • Advanced Configuration and Power Interface (ACPI) (This mechanism is also known as a Chipset Timer.)
  • Time Stamp Counter (TSC)
  • High Precision Event Timer (HPET)

Timekeeping in Linux

On an x86-based platform, the Linux 2.6 kernel interacts with the following kinds of clocks to keep track of time:
  • Power Management Timer (PMTMR)
    This clock has the following characteristics:
    • This clock is set by using theclock=pmtmrkernel parameter.
    • This clock uses the ACPI timer.
    • This clock may cause smaller time gains.
  • Time Stamp Counter (TSC)
    This clock has the following characteristics:
    • This clock is set by using theclock=tsckernel parameter. (This is the default parameter.)
    • This clock uses the PIT counter and the TSC for time interpolation.
    • This clock may cause overcorrection in a virtual machine environment. Therefore, the guest operating system clock may run too fast.
    • This clock may cause time gains of up to 10 percent.
  • Programmable Interval Timer (PIT)
    This clock has the following characteristics:
    • This clock is set by using theclock=pitkernel parameter.
    • This clock uses only the PIT counter for time interpolation.
    • This clock uses the simplest of the available algorithms.
    • This clock does not gain time because it does not use lost tick correction code.
Για περισσότερες πληροφορίες σχετικά με το Virtual Server 2005, επισκεφθείτε την ακόλουθη τοποθεσία της Microsoft στο Web:
http://www.Microsoft.com/windowsserversystem/VIRTUALSERVER/Default.mspx
Τα προϊόντα άλλων κατασκευαστών που αναφέρονται σε αυτό το άρθρο έχουν κατασκευαστεί από εταιρείες ανεξάρτητες από τη Microsoft. Η Microsoft δεν παρέχει καμία εγγύηση, σιωπηρή ή άλλη, όσον αφορά τις επιδόσεις ή την αξιοπιστία αυτών των προϊόντων.

Ιδιότητες

Αναγν. άρθρου: 918461 - Τελευταία αναθεώρηση: Παρασκευή, 24 Δεκεμβρίου 2010 - Αναθεώρηση: 2.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Virtual Server 2005 R2 Standard Edition
  • Microsoft Virtual Server 2005 R2 Enterprise Edition
Λέξεις-κλειδιά: 
kbtshoot kbenv kbdeployment kbprb kbmt KB918461 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:918461

Αποστολή σχολίων

 

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