2 Replies Latest reply on Apr 30, 2019 4:32 AM by the1960

    CPU Reservation / Anteile

    the1960 Novice

      Hallo Zusammen,

       

      ich habe 2 Fragen dazu.

      - Für eine höher CPU-Leistung einer VM ist die Reservation oder die Erhöhung der Anteile besser? Oder beides?

      - Ist es richtig das bei der Reservierung die zugeordnete Größe festzugeordnet wird. Bedeutet das, wenn die VM nur die Hälfte der Reservierung in Anspruch nimmt die andere Hälfte freigegeben wird, oder steht die andere Hälfte für die anderen VM's nicht zur Verfügung.

       

      Ich habe dazu widersprüchliche Aussagen in Dokumenten gefunden.

        • 1. Re: CPU Reservation / Anteile
          sk84 Expert
          vExpert

          Das ist ein recht schwieriges und komplexes Thema. Ich versuche es daher mal einfach zu formulieren.

           

          Eine höhere CPU Leistung kannst du nur über die Anzahl an vCPUs erreichen. Hat 1 physischer Core deines Hosts zum Beispiel 2 GHz und deine VM braucht 8 GHz, dann musst du 4 vCPUs zuweisen (und deine Anwendungen in der VM müssen natürlich auch Multiprocessing fähig sein).

           

          CPU Reservationen und Shares steuern nur die Zuteilung der konfigurierten CPU Ressourcen. Sie erhöhen aber nicht die CPU Leistung (s.o.).

           

          Mit Shares kannst du die Priorität steuern. Fast alle virtualisierten Infrastrukturen sind von CPU Seite überbucht. Was auch Sinn macht, denn der CPU Demand ist sehr fluktuativ, VMs laufen normalerweise nicht mit 100% CPU Auslastung und der CPU Scheduler und Prozessor können die Zuteilung von Rechenzeit im Nanosekundenbereich takten. Je mehr Shares eine VM hat, desto mehr Rechenzeit bekommt sie.

          Wichtig dabei ist zu wissen, dass Shares nur greifen, wenn der Host bzw. Cluster an Kapazitätsgrenzen stößt. Wenn dein Host bspw. 20 GHz insgesamt an Rechenleistung hat und alle VMs nur 10 GHz in einem Moment benötigen, greifen die Shares nicht, da jede VM bekommt was sie möchte.

          Wenn nun alle VMs zusammengenommen 21 GHz benötigen würden, dann verteilt der Host die Rechenzeit anhand der Shares. Eine VM mit 2000 Shares bekommt dann doppelt so viel bzw. doppelt so häufig Rechenzeit wie eine VM mit 1000 Shares.

           

          Reservationen sind, vereinfacht gesagt, echte Reservationen. Das bedeutet die VM bekommt die Leistung fest zugewiesen und sie steht anderen VMs nicht mehr zur Verfügung. Hat dein Host 20 GHz an Gesamt CPU Kapazität und du reservierst für eine VM 4 GHz, dann bleiben für alle anderen VMs nur noch 16 GHz übrig. Auch wenn die VM nur 2 GHz davon benötigen würde. Technisch funktioniert dies noch etwas anders, aber das würde nun zu weit führen. Man kann davon ausgehen, dass die konfigurierte Reservationen fest zugeteilt sind.

          Eine echte Überbuchung ist somit nicht mehr möglich. Wenn dein Host 20 GHz an CPU Leistung hat und du 20 GHz als Reservationen verteilt hast, kann keine weitere VM mehr eingeschaltet werden.

          Als Best Practice wird daher gesagt, dass Reservationen nicht den tatsächlichen Bedarf wiederspiegeln sollen und schon gar kein Wunschkonzert sein sollten, was die VM in Peakzeiten mal haben könnte, sondern Reservationen sollen immer nur das absolut notwendige Minimum abdecken, das es braucht um eine Anwendung am Leben zu erhalten. Wenn deine VM bspw. 8 GHz konfiguriert hat, im Normalfall 4 GHz konsumiert und mit 3 GHz gerade noch so läuft, dann sollte die Reservation bei 3 GHz liegen.

          • 2. Re: CPU Reservation / Anteile
            the1960 Novice

            Hallo

            vielen Dank für die ausführliche Antwort.

             

            Br