{"id":32331,"date":"2019-10-31T21:46:24","date_gmt":"2019-10-31T18:46:24","guid":{"rendered":"https:\/\/prohoster.info\/blog\/steal-kto-kradyot-u-virtualok-protsessornoe-vremya\/"},"modified":"2019-10-31T21:46:24","modified_gmt":"2019-10-31T18:46:24","slug":"steal-kto-kradyot-u-virtualok-protsessornoe-vremya","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/steal-kto-kradyot-u-virtualok-protsessornoe-vremya","title":{"rendered":"Steal: Wer stiehlt der virtuellen Maschine CPU-Zeit?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Steal: Wer stiehlt der virtuellen Maschine CPU-Zeit?\" src=\"\/wp-content\/uploads\/2019\/04\/23cac5d3cc3295dc6f1014e9fda36b89.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHallo! Ich m\u00f6chte in einfachen Worten erkl\u00e4ren, wie es zu Steal in virtuellen Maschinen kommt und einige nicht offensichtliche Artefakte vorstellen, die wir bei seiner Untersuchung herausgefunden haben, in die ich als CTO der Cloud-Plattform eintauchen musste. <noindex><a rel=\"nofollow\" href=\"https:\/\/mcs.mail.ru\/\">Mail.ru Cloud L\u00f6sungen<\/a><\/noindex>. Die Plattform basiert auf KVM.<\/p>\n<p>CPU-Steal-Zeit ist die Zeit, in der die virtuelle Maschine keine CPU-Ressourcen f\u00fcr ihre Ausf\u00fchrung erh\u00e4lt. Diese Zeit wird nur in Gastbetriebssystemen in Virtualisierungsumgebungen ber\u00fccksichtigt. Die Gr\u00fcnde, wohin diese bereitgestellten Ressourcen verschwinden, sind, wie im wirklichen Leben, ziemlich nebul\u00f6s. Aber wir haben uns entschieden, dem auf den Grund zu gehen, und haben eine Reihe von Experimenten durchgef\u00fchrt. Es w\u00e4re nicht korrekt zu sagen, dass wir jetzt alles \u00fcber Steal wissen, aber wir werden Ihnen einige interessante Erkenntnisse mitteilen.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>1. Was ist Steal<\/h2>\n<p>\nSteal ist also eine Metrik, die auf einen Mangel an CPU-Zeit f\u00fcr Prozesse innerhalb der virtuellen Maschine hinweist. Wie beschrieben <noindex><a rel=\"nofollow\" href=\"https:\/\/git.kernel.org\/pub\/scm\/linux\/kernel\/git\/stable\/linux.git\/patch\/?id=c9aaa8957f203bd6df83b002fb40b98390bed078\">im KVM-Kernel-Patch.<\/a><\/noindex>, steal \u2014 dies ist die Zeit, w\u00e4hrend der der Hypervisor andere Prozesse im Host-Betriebssystem ausf\u00fchrt, w\u00e4hrend er den Prozess der virtuellen Maschine zur Ausf\u00fchrung anstellt. Das hei\u00dft, steal wird als die Differenz zwischen der Zeit betrachtet, zu der der Prozess bereit zur Ausf\u00fchrung ist, und der Zeit, zu der der Prozess Rechenzeit zugewiesen bekommt.<\/p>\n<p>Die Steal-Metrik wird von der virtuellen Maschine vom Hypervisor erhalten. Dabei gibt der Hypervisor nicht an, welche anderen Prozesse er genau ausf\u00fchrt, sondern sagt einfach: \u201eW\u00e4hrend ich besch\u00e4ftigt bin, kann ich dir keine Zeit widmen.\u201c In KVM wurde die Unterst\u00fctzung zur Berechnung von steal in <noindex><a rel=\"nofollow\" href=\"https:\/\/lwn.net\/Articles\/449657\/\">Patches<\/a><\/noindex>hinzugef\u00fcgt. Es gibt hier zwei Schl\u00fcsselpunkte: <\/p>\n<ul>\n<li>Die virtuelle Maschine erf\u00e4hrt von steal durch den Hypervisor. Das hei\u00dft, aus Sicht der Verluste ist dies ein indirektes Ma\u00df f\u00fcr die Prozesse auf der virtuellen Maschine, das verschiedenen Verzerrungen unterliegen kann.\n<\/li>\n<li>Der Hypervisor teilt der virtuellen Maschine nicht mit, womit er sonst besch\u00e4ftigt ist \u2014 das Hauptanliegen ist, dass er ihr keine Zeit widmet. Daher kann die virtuelle Maschine Verzerrungen im Steal-Wert nicht erkennen, die anhand der Art der konkurrierenden Prozesse bewertet werden k\u00f6nnten.\n<\/li>\n<\/ul>\n<p><\/p>\n<h2>2. Was beeinflusst steal<\/h2>\n<p><\/p>\n<h3>2.1. Berechnung von steal<\/h3>\n<p>\nIm Grunde wird Steal \u00e4hnlich wie die normale Prozessor-Auslastungszeit betrachtet. Informationen dar\u00fcber, wie die Auslastung berechnet wird, sind rar. Vermutlich, weil die meisten dieses Thema als offensichtlich erachten. Doch auch hier gibt es Fallstricke. Um mehr \u00fcber diesen Prozess zu erfahren, k\u00f6nnen Sie <noindex><a rel=\"nofollow\" href=\"http:\/\/www.brendangregg.com\/blog\/2017-05-09\/cpu-utilization-is-wrong.html\">den Artikel von Brendann Gregg lesen.<\/a><\/noindex>: Sie erfahren viele Details bei der Berechnung der Auslastung und in welchen Situationen diese Berechnung aus den folgenden Gr\u00fcnden fehlerhaft sein kann:<\/p>\n<ul>\n<li>\u00dcberhitzung des Prozessors, bei der Takte \u00fcbersprungen werden.\n<\/li>\n<li>Aktivierung\/Deaktivierung des Turbo-Boosts, die zu einer \u00c4nderung der Taktrate des Prozessors f\u00fchrt.\n<\/li>\n<li>\u00c4nderung der Dauer des Zeitquants, die bei der Verwendung von Energiespartechnologien des Prozessors, wie SpeedStep, auftritt.\n<\/li>\n<li>Das Problem der durchschnittlichen Berechnung: Eine Auslastung von 80 % \u00fcber eine Minute kann einen kurzfristigen Burst von 100 % verbergen.\n<\/li>\n<li>Die zyklische Sperrung (Spin Lock) f\u00fchrt dazu, dass der Prozessor ausgelastet ist, der Benutzerprozess jedoch keinen Fortschritt bei seiner Ausf\u00fchrung sieht. Infolgedessen wird die berechnete Auslastung des Prozessors durch den Prozess bei hundert Prozent liegen, obwohl physisch keine Prozessorzeit vom Prozess verbraucht wird.\n<\/li>\n<\/ul>\n<p>\nIch habe keine Artikel gefunden, die eine \u00e4hnliche Berechnung f\u00fcr Steal beschreiben (wenn Sie welche kennen \u2013 teilen Sie sie bitte in den Kommentaren). Aber judging nach dem Quellcode funktioniert der Berechnungsmechanismus genauso wie bei der Auslastung. Es wird einfach ein weiterer Z\u00e4hler im Kernel hinzugef\u00fcgt, der direkt f\u00fcr den KVM-Prozess (Virtuelle Maschine) zust\u00e4ndig ist und die Dauer der Wartezeit des KVM-Prozesses auf Prozessorzeit z\u00e4hlt. Der Z\u00e4hler entnimmt Informationen vom Prozessor aus dessen Spezifikation und \u00fcberpr\u00fcft, ob alle seine Ticks vom virtuellen Prozess genutzt wurden. Wenn ja, gehen wir davon aus, dass der Prozessor nur mit dem virtuellen Prozess besch\u00e4ftigt war. Andernfalls informieren wir dar\u00fcber, dass der Prozessor mit etwas anderem besch\u00e4ftigt war, was Steal ergibt. <\/p>\n<p>Der Prozess zur Berechnung von Steal ist denselben Problemen ausgesetzt wie die herk\u00f6mmliche Berechnung der Ressourcenauslastung. Diese Probleme treten nicht h\u00e4ufig auf, k\u00f6nnen jedoch entmutigend erscheinen.<\/p>\n<h3>2.2. Arten der Virtualisierung auf KVM<\/h3>\n<p>\nGenerell gibt es drei Arten von Virtualisierung, die alle von KVM unterst\u00fctzt werden. Der Virtualisierungstyp kann den Mechanismus der Entstehung von Steal beeinflussen.<\/p>\n<p><b>\u00dcbertragung<\/b>. In diesem Fall interagiert das Betriebssystem der virtuellen Maschine mit den physischen Ger\u00e4ten des Hypervisors etwa so:<\/p>\n<ol>\n<li>Das Gastbetriebssystem sendet einen Befehl an sein Gastger\u00e4t.\n<\/li>\n<li>Der Treiber des Gastger\u00e4ts empf\u00e4ngt den Befehl, formuliert eine Anfrage f\u00fcr das BIOS des Ger\u00e4ts und leitet sie an den Hypervisor weiter.\n<\/li>\n<li>Der Prozess des Hypervisors \u00fcbersetzt den Befehl in einen Befehl f\u00fcr das physische Ger\u00e4t, wobei er diesen unter anderem sicherer macht.\n<\/li>\n<li>Der Treiber des physischen Ger\u00e4ts empf\u00e4ngt den modifizierten Befehl und sendet ihn an das physische Ger\u00e4t.\n<\/li>\n<li>Die Ergebnisse der Befehlsausf\u00fchrung gelangen \u00fcber denselben Weg zur\u00fcck. \n<\/li>\n<\/ol>\n<p>\nDer Vorteil der Virtualisierung besteht darin, dass sie die Emulation jedes beliebigen Ger\u00e4ts erm\u00f6glicht und keine spezielle Vorbereitung des Betriebssystems erfordert. Allerdings wird dies vor allem auf Kosten der Geschwindigkeit bezahlt. <\/p>\n<p><b>Hardware-Virtualisierung<\/b>. In diesem Fall versteht das physische Ger\u00e4t auf Hardware-Ebene die Befehle des Betriebssystems. Dies ist der schnellste und beste Ansatz. Leider wird er jedoch nicht von allen physischen Ger\u00e4ten, Hypervisoren und Gastbetriebssystemen unterst\u00fctzt. Derzeit sind die Hauptger\u00e4te, die Hardware-Virtualisierung unterst\u00fctzen, Prozessoren.<\/p>\n<p><b>Paravirtualisierung<\/b>. Die am weitesten verbreitete Form der Virtualisierung von Ger\u00e4ten auf KVM und generell der am meisten genutzte Virtualisierungsmodus f\u00fcr Gastbetriebssysteme. Das Besondere dabei ist, dass die Interaktion mit bestimmten Untersystemen des Hypervisors (zum Beispiel mit dem Netzwerk- oder Speicher-Stack) oder die Zuweisung von Speicherseiten \u00fcber die API des Hypervisors erfolgt, ohne dass niedrigstufige Befehle \u00fcbersetzt werden. Ein Nachteil dieser Virtualisierungsart besteht darin, dass der Kernel des Gastbetriebssystems modifiziert werden muss, damit er \u00fcber diese API mit dem Hypervisor interagieren kann. Dieses Problem wird jedoch in der Regel durch die Installation spezieller Treiber im Gastbetriebssystem gel\u00f6st. In KVM wird diese API als <noindex><a rel=\"nofollow\" href=\"https:\/\/www.ibm.com\/developerworks\/library\/l-virtio\/index.html\">virtio API<\/a><\/noindex>.<\/p>\n<p>Bei der Paravirtualisierung wird der Weg zu den physischen Ger\u00e4ten deutlich verk\u00fcrzt, da Befehle direkt aus der virtuellen Maschine an den Hypervisor-Prozess auf dem Host gesendet werden. Dies beschleunigt die Ausf\u00fchrung aller Anweisungen innerhalb der virtuellen Maschine. In KVM ist hierf\u00fcr die virtio-API verantwortlich, die nur f\u00fcr bestimmte Ger\u00e4te wie Netzwerk- oder Festplattentreiber funktioniert. Aus diesem Grund werden in virtuellen Maschinen virtio-Treiber installiert. <\/p>\n<p>Die Kehrseite dieser Beschleunigung ist, dass nicht alle Prozesse, die innerhalb der virtuellen Maschine ausgef\u00fchrt werden, auch dort bleiben. Dies kann zu bestimmten Effekten f\u00fchren, die zu 'steal' f\u00fchren k\u00f6nnen. Eine eingehende Untersuchung dieses Themas empfehle ich mit <noindex><a rel=\"nofollow\" href=\"https:\/\/lwn.net\/Articles\/239238\/\">Eine API f\u00fcr virtuelles I\/O: virtio<\/a><\/noindex>.<\/p>\n<h3>2.3. 'Fair' Scheduling<\/h3>\n<p>\nEine virtuelle Maschine auf dem Hypervisor ist faktisch ein herk\u00f6mmlicher Prozess, der den Gesetzen des Scheduling (Ressourcenzuweisung zwischen Prozessen) im Linux-Kernel unterliegt. Daher werden wir diesen Punkt genauer betrachten. <\/p>\n<p>In Linux wird der sogenannte CFS, der Completely Fair Scheduler, ab Kernel 2.6.23 als Standard-Scheduler verwendet. Um diesen Algorithmus zu verstehen, kann man die Linux Kernel Architektur oder die Quelltexte lesen. Der Grundgedanke von CFS ist die Verteilung der Prozessorzeit auf Prozesse, abh\u00e4ngig von der Dauer ihrer Ausf\u00fchrung. Je mehr Prozessorzeit ein Prozess ben\u00f6tigt, desto weniger erh\u00e4lt er. Dies gew\u00e4hrleistet eine \"faire\" Ausf\u00fchrung aller Prozesse \u2013 sodass kein einzelner Prozess st\u00e4ndig alle Prozessoren beansprucht und auch andere Prozesse ausgef\u00fchrt werden k\u00f6nnen. <\/p>\n<p>Manchmal f\u00fchrt dieses Paradigma zu interessanten Artefakten. Langj\u00e4hrige Linux-Nutzer erinnern sich sicherlich an das Einfrieren des \u00fcblichen Texteditors auf dem Desktop beim Start ressourcenintensiver Anwendungen wie eines Compilers. Dies geschah, weil ressourcenleichte Aufgaben von Desktop-Anwendungen mit ressourcenintensiven Aufgaben wie dem Compiler konkurrierten. CFS betrachtet dies als unfair und stoppt daher regelm\u00e4\u00dfig den Texteditor, um dem Prozessor die Verarbeitung der Compiler-Aufgaben zu erm\u00f6glichen. Dies wurde mit Hilfe eines Mechanismus behoben. <noindex><a rel=\"nofollow\" href=\"https:\/\/marc.info\/?l=linux-kernel&amp;m=128978361700898\">sched_autogroup<\/a><\/noindex>, aber es gibt viele weitere Aspekte bei der Verteilung der Prozessorzeit zwischen den Aufgaben. Tats\u00e4chlich geht es nicht darum, wie schlecht es im CFS ist, sondern vielmehr darum, darauf hinzuweisen, dass eine \"faire\" Verteilung der Prozessorzeit keine triviale Aufgabe ist.<\/p>\n<p>Ein weiterer wichtiger Punkt im Scheduler ist die Preemption. Dies ist notwendig, um einen \u00fcberm\u00e4\u00dfig ressourcenintensiven Prozess von der CPU zu verdr\u00e4ngen und anderen Prozessen die M\u00f6glichkeit zu geben, zu arbeiten. Der Vorgang des Verdr\u00e4ngens wird als Kontextwechsel bezeichnet. Dabei wird der gesamte Kontext der Aufgabe gespeichert: Stack-Zustand, Register und weitere Informationen, wonach der Prozess in den Wartezustand versetzt wird und ein anderer Prozess seine Stelle einnimmt. Dies ist eine aufwendige Operation f\u00fcr das Betriebssystem und wird selten durchgef\u00fchrt, aber prinzipiell ist daran nichts Schlechtes. H\u00e4ufige Kontextwechsel k\u00f6nnen auf ein Problem im Betriebssystem hindeuten, aber normalerweise erfolgt dies kontinuierlich und weist auf nichts besonders hin.<\/p>\n<p>Die lange Erkl\u00e4rung dient dazu, einen Fakt zu verdeutlichen: Je mehr CPU-Ressourcen ein Prozess in einem fairen Linux-Scheduler zu verbrauchen versucht, desto schneller wird er gestoppt, damit auch andere Prozesse aktiv werden k\u00f6nnen. Ob das richtig ist oder nicht, ist eine komplexe Frage, die unter verschiedenen Lasten unterschiedlich gel\u00f6st wird. In Windows war der Scheduler bis vor kurzem darauf ausgelegt, Desktop-Anwendungen priorisiert zu verarbeiten, weshalb Hintergrundprozesse manchmal ausgebremst wurden. In Sun Solaris gab es f\u00fcnf verschiedene Klassen von Scheduler. Mit der Einf\u00fchrung der Virtualisierung wurde ein sechster hinzugef\u00fcgt, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/man.shtml?topic=FSS&amp;category=7&amp;russian=4\">Faires Ressourcenmanagement im Scheduler<\/a><\/noindex>, da die vorherigen f\u00fcnf mit der Virtualisierung von Solaris Zones nicht richtig funktionierten. Eine detaillierte Auseinandersetzung mit diesem Thema empfehle ich, beginnend mit B\u00fcchern wie <noindex><a rel=\"nofollow\" href=\"https:\/\/www.amazon.com\/Solaris-Internals-OpenSolaris-Kernel-Architecture\/dp\/0131482092\/\">Solaris Internals: Solaris 10 und OpenSolaris Kernel-Architektur<\/a><\/noindex> oder <noindex><a rel=\"nofollow\" href=\"https:\/\/www.amazon.com\/Understanding-Linux-Kernel-Third-Daniel\/dp\/0596005652\/\">Understanding the Linux Kernel<\/a><\/noindex>.<\/p>\n<h3>2.4. Wie \u00fcberwacht man den Steal?<\/h3>\n<p>\nDen Steal innerhalb einer virtuellen Maschine zu \u00fcberwachen, ist wie bei jeder anderen CPU-Metrik einfach: Sie k\u00f6nnen jedes beliebige Tool zur Erfassung von CPU-Metriken verwenden. Wichtig ist, dass die virtuelle Maschine auf Linux l\u00e4uft. Windows hingegen stellt diese Art von Informationen seinen Benutzern aus irgendeinem Grund nicht zur Verf\u00fcgung. \ud83d\ude41<\/p>\n<p><img decoding=\"async\" alt=\"Steal: Wer stiehlt der virtuellen Maschine CPU-Zeit?\" src=\"\/wp-content\/uploads\/2019\/04\/3c7cd04f73fd6a74b86af81382090b69.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Ausgabe des top-Befehls: Detailierte CPU-Auslastung in der ganz rechten Spalte \u2014 steal<\/i><\/p>\n<p>Die Herausforderungen entstehen bei dem Versuch, diese Informationen vom Hypervisor zu erhalten. Man kann versuchen, den Steal-Wert auf der Hostmaschine zu prognostizieren, zum Beispiel durch den Load Average (LA) \u2014 den Durchschnittswert der Prozesse, die auf ihre Ausf\u00fchrung warten. Die Berechnung dieses Parameters ist kompliziert, aber ganz allgemein gilt: Wenn der normierte LA im Verh\u00e4ltnis zur Anzahl der CPU-Threads gr\u00f6\u00dfer als 1 ist, bedeutet das, dass der Linux-Server \u00fcberlastet ist. <\/p>\n<p>Worauf warten all diese Prozesse? Die offensichtliche Antwort ist \u2014 auf die CPU. Doch diese Antwort ist nicht ganz korrekt, denn manchmal ist die CPU frei, w\u00e4hrend der LA hoch ist. Denken Sie daran, <noindex><a rel=\"nofollow\" href=\"https:\/\/serverfault.com\/questions\/911976\/redhat-nfs-cluster-high-load-average-suddenly\">wie NFS ausf\u00e4llt und der LA dabei steigt<\/a><\/noindex>. \u00c4hnlich verh\u00e4lt es sich auch mit der Festplatte und anderen Ein- und Ausgabeger\u00e4ten. Letztendlich k\u00f6nnen Prozesse auf das Ende jeglicher Art von Sperren warten, sowohl physikalischer Art, die mit dem Ein- und Ausgabeger\u00e4t verbunden sind, als auch logischer Art, wie etwa Mutexe. Dazu geh\u00f6ren auch Sperren auf Hardware-Ebene (zum Beispiel Wartezeiten von der Festplatte) oder logische Sperren (die sogenannten Sperrprimitive, zu denen viele Entit\u00e4ten geh\u00f6ren, darunter adaptive Mutexe und Spinlocks, Semaphore, Bedingungsvariablen, rw-Sperren, ipc-Sperren\u2026).<\/p>\n<p>Ein weiteres Merkmal der LA ist, dass sie als Durchschnittswert des Betriebssystems betrachtet wird. Zum Beispiel konkurrieren 100 Prozesse um eine Datei, und dann ist LA=50. Ein so hoher Wert scheint darauf hinzudeuten, dass das Betriebssystem schlecht funktioniert. Aber f\u00fcr einen anderen schlecht geschriebenen Code kann dies ein normales Verhalten darstellen, bei dem nur dieser spezifische Code leidet, w\u00e4hrend andere Prozesse im Betriebssystem nicht betroffen sind. <\/p>\n<p>Aufgrund dieser Durchschnittsbildung (die mindestens eine Minute dauert) ist es im Allgemeinen kein einfaches Unterfangen, etwas anhand des LA-Wertes zu bestimmen, da die Ergebnisse in spezifischen F\u00e4llen sehr ungewiss sind. Wenn Sie versuchen, es zu verstehen, werden Sie feststellen, dass in Artikeln auf Wikipedia und anderen verf\u00fcgbaren Ressourcen nur die einfachsten F\u00e4lle beschrieben werden, ohne eine tiefgehende Erkl\u00e4rung des Prozesses. Alle, die interessiert sind, verweise ich erneut <noindex><a rel=\"nofollow\" href=\"http:\/\/www.brendangregg.com\/blog\/2017-08-08\/linux-load-averages.html\">hierhin, zu Brendann Gregg<\/a><\/noindex> \u00a0\u2014 weiter \u00fcber die Links. Wer keine Lust auf Englisch hat \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mailru\/blog\/335326\/\">eine \u00dcbersetzung seines popul\u00e4ren Artikels \u00fcber LA<\/a><\/noindex>.<\/p>\n<h2>3. Effekte<\/h2>\n<p>\nJetzt gehen wir auf die Hauptf\u00e4lle des Auftretens von Steal ein, mit denen wir konfrontiert wurden. Ich werde erl\u00e4utern, wie sie aus dem oben Gesagten hervorgehen und wie sie mit den Werten auf dem Hypervisor in Beziehung stehen.<\/p>\n<p><b>Reutilisierung<\/b>. Das Einfachste und h\u00e4ufigste: Der Hypervisor wird \u00fcberlastet. Tats\u00e4chlich laufen viele virtuelle Maschinen, die CPU-Nutzung ist hoch und es gibt viel Konkurrenz, die Auslastung pro LA liegt \u00fcber 1 (normiert nach CPU-Threads). Innerhalb aller virtuellen Maschinen l\u00e4uft alles langsam. Der Steal, der vom Hypervisor \u00fcbertragen wird, steigt ebenfalls an; es muss eine Lastverteilung erfolgen oder jemand muss abgeschaltet werden. Alles ist schl\u00fcssig und nachvollziehbar.<\/p>\n<p><b>Paravirtualisierung gegen isolierte Instanzen<\/b>. Auf dem Hypervisor befindet sich lediglich eine virtuelle Maschine, die nur einen kleinen Teil seiner Kapazit\u00e4t ben\u00f6tigt, aber eine hohe Last in Bezug auf Ein-\/Ausgabe, beispielsweise auf der Festplatte, erzeugt. Und irgendwo in ihr tritt ein minimaler Steal auf, bis zu 10 % (wie mehrere durchgef\u00fchrte Experimente zeigen).<\/p>\n<p>Das ist ein interessantes Ph\u00e4nomen. Das Stehlen von Zeit tritt hier auf, weil es durch Blockierungen auf der Ebene der paravirtualisierten Treiber verursacht wird. Innerhalb der virtuellen Maschine wird eine Unterbrechung erzeugt, die vom Treiber verarbeitet und an den Hypervisor weitergeleitet wird. Aufgrund der Verarbeitung der Unterbrechung sieht die virtuelle Maschine dies als einen gesendeten Antrag an, sie ist bereit zur Ausf\u00fchrung und wartet auf den Prozessor, aber ihr wird keine Prozessorzeit zugewiesen. Die virtuelle Maschine denkt, dass diese Zeit gestohlen wurde. <\/p>\n<p>Dies geschieht im Moment des Sendens des Puffers, der in den Kernel-Space des Hypervisors \u00fcbertragen wird, und wir beginnen, darauf zu warten. Aus der Sicht der virtuellen Maschine sollte dieser jedoch sofort zur\u00fcckkommen. Folglich wird laut dem Steal-Berechnungsalgorithmus diese Zeit als gestohlen betrachtet. In dieser Situation k\u00f6nnten wahrscheinlich auch andere Mechanismen vorhanden sein (zum Beispiel die Verarbeitung anderer Systemaufrufe), aber diese sollten sich nicht stark unterscheiden.<\/p>\n<p><b>Der Scheduler gegen stark belastete virtuelle Maschinen<\/b>. Wenn eine virtuelle Maschine st\u00e4rker von Steal betroffen ist als andere, liegt das am Scheduler. Je h\u00f6her die Auslastung des Prozessors durch einen Prozess ist, desto eher wird der Scheduler diesen Prozess abbrechen, damit andere ebenfalls arbeiten k\u00f6nnen. Wenn eine virtuelle Maschine wenig Ressourcen ben\u00f6tigt, sieht sie fast keinen Steal: Ihr Prozess wartet brav und sollte mehr Zeit bekommen. Wenn eine virtuelle Maschine jedoch alle ihre Kerne maximal auslastet, wird sie h\u00e4ufiger vom Prozessor abgedr\u00e4ngt und erh\u00e4lt weniger Zeit. <\/p>\n<p>Es wird noch schlimmer, wenn Prozesse innerhalb der virtuellen Maschine versuchen, mehr Prozessorleistung zu beanspruchen, weil sie mit der Datenverarbeitung nicht zurechtkommen. In diesem Fall wird das Betriebssystem auf dem Hypervisor, durch faire Optimierung, immer weniger Prozessorzeit zuweisen. Dieser Prozess geschieht lawinenartig und der Steal-Wert schie\u00dft in die H\u00f6he, w\u00e4hrend andere virtuelle Maschinen ihn kaum bemerken. Je mehr Kerne, desto schlechter ergeht es der betroffenen Maschine. Kurz gesagt, stark beanspruchte virtuelle Maschinen mit vielen Kernen leiden am meisten.<\/p>\n<p><b>Niedriger LA, aber es gibt Steal<\/b>. Wenn der LA etwa 0,7 betr\u00e4gt (d.h. der Hypervisor scheint unterlastet zu sein), es jedoch innerhalb der einzelnen VMs zu Steal kommt:<\/p>\n<ul>\n<li>Dies ist die bereits oben beschriebene Methode der Paravirtualisierung. Die virtuelle Maschine kann Metriken erhalten, die auf Steal hinweisen, w\u00e4hrend beim Hypervisor alles in Ordnung ist. Laut unseren Experimenten \u00fcberschreitet dieser Steal nicht 10 % und sollte keine wesentlichen Auswirkungen auf die Leistung der Anwendungen innerhalb der virtuellen Maschine haben.\n<\/li>\n<li>Der LA-Wert wird f\u00e4lschlicherweise berechnet. Genauer gesagt, wird er in jedem einzelnen Moment korrekt berechnet, aber bei der Durchschnittsbildung \u00fcber eine Minute wird er zu niedrig angegeben. Wenn beispielsweise eine VM ein Drittel der Ressourcen des Hypervisors f\u00fcr genau eine halbe Minute nutzt, betr\u00e4gt der LA-Wert f\u00fcr die Minute am Hypervisor 0,15; vier solcher VMs, die gleichzeitig laufen, ergeben 0,6. Und dass es f\u00fcr eine halbe Minute auf jeder von ihnen einen massiven Steal von etwa 25 % beim LA-Wert gab, ist danach nicht mehr nachvollziehbar.\n<\/li>\n<li>Wegen desSchedulers entscheidet, dass jemand zu viel frisst und dieser jemand warten muss. In der Zwischenzeit wechsle ich den Kontext, bearbeite Unterbrechungen und k\u00fcmmere mich um andere wichtige Systemaufgaben. Letztendlich haben einige virtuelle Maschinen keine Probleme, w\u00e4hrend andere ernsthafte Leistungsdegradation erleben.\n<\/li>\n<\/ul>\n<p><\/p>\n<h2>4. Weitere Verzerrungen<\/h2>\n<p>\nEs gibt noch viele andere Gr\u00fcnde f\u00fcr Verzerrungen bei der gerechten Verteilung der CPU-Zeit auf virtuellen Maschinen. Beispielsweise tragen Hyper-Threading und NUMA zur Komplexit\u00e4t der Berechnungen bei. Sie verwirren die Auswahl des Kerns f\u00fcr die Ausf\u00fchrung des Prozesses endg\u00fcltig, da der Scheduler Koeffizienten \u2013 Gewichte \u2013 verwendet, die das Timing bei Context-Switches noch komplizierter machen.<\/p>\n<p>Es kann Verzerrungen aufgrund von Technologien wie Turbo-Boost oder im Gegenteil, Energiesparmodi geben, die bei der Berechnung der Auslastung die Frequenz oder sogar die Zeitquantum auf dem Server k\u00fcnstlich erh\u00f6hen oder senken k\u00f6nnen. Das Aktivieren des Turbo-Boosts verringert die Leistung eines Prozessor-Threads aufgrund der erh\u00f6hten Leistung eines anderen. Zu diesem Zeitpunkt werden der virtuellen Maschine keine Informationen \u00fcber die aktuelle Prozessorfrequenz \u00fcbermittelt, was dazu f\u00fchrt, dass sie denkt, ihre Zeit werde von jemandem entwendet (zum Beispiel hat sie 2 GHz angefordert, aber erh\u00e4lt die H\u00e4lfte). <\/p>\n<p>Insgesamt kann es viele Gr\u00fcnde f\u00fcr Verzerrungen geben. In einem bestimmten System k\u00f6nnten Sie noch etwas anderes feststellen. Am besten beginnen Sie mit den B\u00fcchern, f\u00fcr die ich oben Links bereitgestellt habe, und der Erfassung von Statistiken vom Hypervisor mit Tools wie perf, sysdig, systemtap, von denen es <noindex><a rel=\"nofollow\" href=\"https:\/\/jvns.ca\/blog\/2017\/07\/05\/linux-tracing-systems\/\">Dutzende gibt.<\/a><\/noindex>.<\/p>\n<h2>5. Fazit<\/h2>\n<p><\/p>\n<ol>\n<li>Ein gewisser Steal kann durch Paravirtualisierung entstehen und wird als normal angesehen. Im Internet liest man, dass dieser Wert 5-10 % betragen kann. Dies h\u00e4ngt von den Anwendungen innerhalb der virtuellen Maschine und der Belastung der physischen Ger\u00e4te ab. Es ist wichtig, darauf zu achten, wie sich die Anwendungen innerhalb der virtuellen Maschinen verhalten.\n<\/li>\n<li>Das Verh\u00e4ltnis von Belastung im Hypervisor und Steal innerhalb der virtuellen Maschine ist nicht immer eindeutig miteinander verkn\u00fcpft; beide Steal-Bewertungen k\u00f6nnen in bestimmten Situationen bei unterschiedlichen Lasten fehlerhaft sein.\n<\/li>\n<li>Der Scheduler hat eine negative Haltung gegen\u00fcber Prozessen, die viel anfordern. Er versucht, weniger Ressourcen denen zuzuweisen, die mehr verlangen. Gro\u00dfe virtuelle Maschinen sind problematisch.\n<\/li>\n<li>Ein gewisser Steal kann auch ohne Paravirtualisierung normal sein (unter Ber\u00fccksichtigung der Last innerhalb der virtuellen Maschine, der Besonderheiten der Nachbarlasten, der Verteilung der Last auf Threads und anderer Faktoren).\n<\/li>\n<li>Wenn Sie herausfinden m\u00f6chten, was Steal in einem bestimmten System bedeutet, m\u00fcssen Sie verschiedene Optionen untersuchen, Metriken sammeln, diese sorgf\u00e4ltig analysieren und \u00fcberlegen, wie die Last gleichm\u00e4\u00dfig verteilt werden kann. Abweichungen von den verschiedenen F\u00e4llen m\u00fcssen experimentell best\u00e4tigt oder im Kern-Debugger betrachtet werden.\n<\/li>\n<\/ol>\n<p>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mailru\/blog\/449316\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442! \u0425\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u044f\u0437\u044b\u043a\u043e\u043c \u043e \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f steal \u0432\u043d\u0443\u0442\u0440\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d \u0438 \u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0445 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u043c \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0432\u044b\u044f\u0441\u043d\u0438\u0442\u044c \u043f\u0440\u0438 \u0435\u0433\u043e \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u043d\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u043e\u0433\u0440\u0443\u0437\u0438\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u0442\u0435\u0445\u0434\u0438\u0440\u0443 \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Mail.ru Cloud Solutions. \u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 KVM. CPU steal time \u2014 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f, \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":24147,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-32331","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442! \u0425\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u044f\u0437\u044b\u043a\u043e\u043c \u043e \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f steal \u0432\u043d\u0443\u0442\u0440\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d \u0438 \u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0445 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u043c \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0432\u044b\u044f\u0441\u043d\u0438\u0442\u044c \u043f\u0440\u0438 \u0435\u0433\u043e \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u043d\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u043e\u0433\u0440\u0443\u0437\u0438\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u0442\u0435\u0445\u0434\u0438\u0440\u0443 \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Mail.ru Cloud Solutions. \u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 KVM. CPU steal time \u2014 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f, \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/steal-kto-kradyot-u-virtualok-protsessornoe-vremya\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Steal: \u043a\u0442\u043e \u043a\u0440\u0430\u0434\u0451\u0442 \u0443 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043e\u043a \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442! \u0425\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u044f\u0437\u044b\u043a\u043e\u043c \u043e \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f steal \u0432\u043d\u0443\u0442\u0440\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d \u0438 \u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0445 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u043c \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0432\u044b\u044f\u0441\u043d\u0438\u0442\u044c \u043f\u0440\u0438 \u0435\u0433\u043e \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u043d\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u043e\u0433\u0440\u0443\u0437\u0438\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u0442\u0435\u0445\u0434\u0438\u0440\u0443 \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Mail.ru Cloud Solutions. \u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 KVM. CPU steal time \u2014 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f, \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/steal-kto-kradyot-u-virtualok-protsessornoe-vremya\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:46:24+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:46:24+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Steal: Wer stiehlt der Virtualisierung CPU-Zeit | ProHoster","description":"Hallo! Ich m\u00f6chte in einfachen Worten \u00fcber die Mechanik der Entstehung von Steal innerhalb virtueller Maschinen und einige unauff\u00e4llige Artefakte sprechen, die wir bei der Untersuchung gefunden haben, in die ich als technischer Direktor der Cloud-Plattform Mail.ru Cloud Solutions eintauchen musste. Die Plattform basiert auf KVM. CPU Steal Time ist die Zeit, w\u00e4hrend der die virtuelle Maschine keine Prozessorressourcen erh\u00e4lt.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/steal-kto-kradyot-u-virtualok-protsessornoe-vremya","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Steal: \u043a\u0442\u043e \u043a\u0440\u0430\u0434\u0451\u0442 \u0443 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u043e\u043a \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442! \u0425\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u044f\u0437\u044b\u043a\u043e\u043c \u043e \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f steal \u0432\u043d\u0443\u0442\u0440\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d \u0438 \u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0445 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u043c \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0432\u044b\u044f\u0441\u043d\u0438\u0442\u044c \u043f\u0440\u0438 \u0435\u0433\u043e \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u043d\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u043e\u0433\u0440\u0443\u0437\u0438\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u0442\u0435\u0445\u0434\u0438\u0440\u0443 \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Mail.ru Cloud Solutions. \u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 KVM. CPU steal time \u2014 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f, \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/steal-kto-kradyot-u-virtualok-protsessornoe-vremya","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:46:24+00:00","article:modified_time":"2019-10-31T18:46:24+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"32331","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 10:21:22","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:00:23","updated":"2026-01-21 10:21:22"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/32331","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=32331"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/32331\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/24147"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=32331"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=32331"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=32331"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}