CPU Auslastung durch viele Festplattenzugriffe?

gunmarine

Lt. Commander
Registriert
Feb. 2012
Beiträge
2.047
Ich hab da eine Verständnisfrage...

Wenn ich 8 Festplatten habe auf die die ganze Zeit zugegriffen wird, erhöht sich dann mit jeder weiteren Festplatte die CPU Auslastung (sagen wir mal die eigentliche rechenarbeit vom CPU pro programm wäre 1%). Steigt dann die Auslastung ab irgendeinem Punkt übermäßig an weil der Sata Port überfordert ist? Durch Hilfe hier im CB Forum konnte ich die Auslastung senken, weil die SSDs den Sata Port ans Limit gebracht haben und dadurch der CPU Load etwa 15% höher war als auf HDDs.

Und könnte durch den Einsatz von SATA Controllern wie z.b. http://geizhals.at/de/digitus-ds-30104-1-a956647.html

die CPU Auslastung verringert werden?

Ich habe jetzt 8 Festplatten an meinem X99 dran, meine Virtual Machines greifen ständig darauf zu und ich habe schon bei meinen anderen System (sieh sig) bemerkt, dass der 4930K nicht viel mehr schafft als ein Xeon 1231 V2, weil ab irgendeinem Punkt die CPU Auslastung zu stark hoch geht. Wenn ich durch den Einsatz von zusätzlichen Sata Controllern die Auslastung senke könnte wären die 25€-50€ für nen PCI-E Controller gut angelegtes Geld.

Bin ich bei etwa 15 VMs bei etwa 50% load, reichen weitere 5 um ans Limit zu kommen.
 
Zuletzt bearbeitet:
15 VMs, die ständig auf den HDDs arbeiten, erzeugen sicherlich nicht nur jeweils 1% CPU Last. Da kommt beides zum tragen. Die Kommunikation via SATA benötigt CPU Ressourcen und das am Laufen halten der VMs natürlich auch. Mit einem externen Controller wird sich das vielleicht etwas reduzieren. Kommt halt dann noch mehr auf drauf an, was genau die VMs da machen. Aber viel solltest Du davon nicht erwarten.

Und noch eine Bremse. Bei 15 VMs und 8 HDDs ergibt sich zwangsläufig, dass verschiedene VMs die selbe HDD nutzen. Auch das wirkt sich negativ auf die CPU Last aus. Und erzeugt natürlich einen riesigen Overhead.

15 oder gar 20 VMs ist keine Consumeranwendung. Und Du hast aber nur Consumer Hardware.
 
Zuletzt bearbeitet:
Versuche PCI passthrough zu verwenden. Das bedeutet allerdings die exklusive Verwendung desjenigen SATA HBA für diese VM.
 
Also auf jeder HDD laufen 5 VMs, da damit der CPU Load niedriger war als 4 VMs auf einer SSD.

Das mit den 1% war nurn beispiel.

Hab ich 8 VMs laufen hab ich nen Load von etwa 30-35%, laufen 20 bin ich bei 100...irgendwo muss ja der load eingespart werden.

PS: In den VM's laufen WoW 32 Bit clients + Bot.

Wenn ich 20 VMs pro PC laufen habe, wäre der PCI Passthrough vermutlich keine gute Idee wenn ich dann 20 festplatten bräuchte oder muss ich das so verstehen, dass dann nur die 5 VMs die alleinige Verwendung für den HBA haben?
 
Zuletzt bearbeitet:
Nein, ob Du partitionierst oder nicht. Das spielt keine Rolle. Es bleibt eine HDD. Und da zeigt es sich eben. Der erzeugte Overhead ist ein großer Grund, warum Du Last erzeugst. Mehrere VMs auf einer HDD. Da muss ständig auf der HDD hin und her gesprungen werden. Ist nicht gut für die HDD und auch nicht für die Systemlast.

Eine Frage, wenn die VMs so gar nichts machen aber Hyperaktiv auf den Datenträgern sind, was genau machen sie denn dann?

Ergänzung:

Wäre mir aber neu, dass WoW keinerlei CPU Last erzeugt. PCI Passthrough bedeutet lediglich, die VM hat exklusiven Zugriff auf den Controller. Ja, dann müsstest Du für jede VM einen SATA Controller bereit stellen. Aber so oder so. 15 mal plus X WoW auf der Hardware laufen lassen ist doch schon ein gutes Ergebnis.
 
Zuletzt bearbeitet:
Würde denn ein Xeon wie z.b. http://geizhals.at/de/intel-xeon-e5-1650-v2-cm8063501292204-a994406.html bessere Ergebnisse als der 4930K erzielen, wenn der Rest der Hardware gleich bleibt?

Naja im Prinzip gehts darum, dass Blizzard mir nicht alle Accounts gleichzeitig weg bannt, die machen nix außer kontinuirlich Gold erzeugen und schnappen niemandem irgendwelche Sachen vor der Nase weg ;P

WoW verbraucht übrigens nicht so viel CPU Last in den VMs, die Hauptlast verursacht der Bot, rendering auszuschalten hab ich auch schon ausprobiert um die Last zu senken, da die CPU ja in den VMs für die Grafik zuständig ist, aber das hat nichts gebracht.

Im Endeffekt gehts mit der Geschichte nur drum ob ich für wenig Geld (besagte 25-50€ für den Controller) den Load vllt um 10% senken kann und dadurch 2-4 zusätzliche VMs aufschalten kann.
 
Zuletzt bearbeitet:
Wie Du schon selber bemerkt hast. Die CPU hat in Deinem Szenario eine untergeordnete Rolle gespielt. Warum sollte jetzt ein anderer Xeon da Wunder bewirken? Du musst die I/O Zugriffe in den Griff bekommen. Und die bekommst Du nur in den Griff, wenn jede VM ihr eigenes Laufwerk hat. Und auch dann wird mEn nicht viel mehr mit der Hardware gehen, als die jetzt schon 15x laufenden OSes mit WoW laufend.
 
Der Xeon ist der gleiche Chip, hat eben nur ECC Support. Da würde sich nix ändern.

Kann es sein daß du bei 15 Instanzen das Paging anfängst? wieviel RAM braucht denn so ein Bot? Ich hoffe das Paging innerhalb der VMs ist aus?
15 Instanzen a 2-4GB, das macht 30GB Minimum wenn du nur 2GB für OS+WoW+Bot brauchst, was imho sehr niedrig gerechnet ist. Dazu 2GB für ESXi und du hast null Cache.
 
Das Paging ist sicher ein guter Ansatz. Und auch die Menge an Verfügbaren RAM pro Gast/Bot und auf dem Host sind interessant.
Zudem ist interessant wie du womit virtualisierst. Benutzt du Paravirtualisierte Hardware oder Emulierst du? Bei letzerdem geht die Performance runter und die Last hoch.

Den Overhead bei IO auf der CPU würde ich vernachlässigen. Der sollte mit normalen Controllern keine große Rolle spielen. Und mit den günstigen Controllern wirst du auch keinen erfolg haben. Da braucht man gescheite Controller mit eigener CPU und Cache. Da liegt man dann aber bei mehreren hundert Euro.
Mehr IO heißt einfach nur, dass alles länger warten. IO ist leider typischer Bottleneck bei Virtualisierung und etwas schwerer greifbar als RAM oder CPU.
 
Zuletzt bearbeitet:
Okay das mit dem Paging in den VMs ist schonmal ist ne gute Idee, hätte ich selber mal drauf kommen können.

Also der RAM Verbrauch jedes Gasts liegt laut taskmanager bei 1.3 GB Ram, jede VM hat 1.5-1.6 GB an Ram zugeteilt, 1 Prozessor + 1 Kern. Insgesamt liegt der RAM Verbrauch bei etwa 40 GB beim PC bei 48 GB Ram, im Host ist das Paging aus.

Woher weiss ich ob das paravirtualierste Hardware oder emulierte ist?

Ich nutze VMWare Workstation 11 + Windows 7.
 
Zuletzt bearbeitet:
Bei 1.5 GB RAM / VM ist auf jeden Fall das Paging File aktiv. Und erzeugt eben auch nochmal ordentlich I/O Last auf den HDDs. Wenn da nur WoW drauf läuft, könnte man mal testweise die Auslagerungsdatei ausschalten. Aber dafür sind dann 1.5 GB RAM zu wenig.
 
gunmarine schrieb:
Also auf jeder HDD laufen 5 VMs, da damit der CPU Load niedriger war als 4 VMs auf einer SSD.

Schon mal daran gedacht das das "normal" ist da eine SSD ja auch mehr Daten hin und herschickt und damit die CPU mehr Arbeit erledigen darf ?

Es liegt hier nicht daran das HDD oder SSD eine CPU Last erzeugen weil sie "DA" sind sondern weil eine SSD egal bei welchen Zugriffen die deutlich höheren Lese und Schreibraten hat und somit die CPU mehr Last abbekommt.
 
Wieviel RAM ist in einer VM "committed" wieviel wird wirklich genutzt?
Starte den Bot und dann Process Explorer. Dort gibt es einen Graphen, der 2. von links, nach der Prozessorauslastung, "commit". Was sagt der aus?
 
Kann dem nur zustimmen. Eine HDD ist für WOW einfach zu langsam. Damit hat dann die CPU auch nicht so schnell die Daten und 'langweilt' sich. Eine SSD gibt dem ganzen aber mehr schub und die CPU kann, muss und darf schneller arbeiten, bzw hat mehr Last.

Wenn man aber schon mit sovielen Botsystemen arbeitet, sollte man überlegen, alle VMs auf SSD zu knallen.
Und wenn das Geld locker sitzt, ein HW-Raidcontroller mit Ram und BackupUnit.

WoW ist und war schon immer mehr ein Datenbanksystem. Grafik ist da nur zweitrangig.

lg
fire
 
Die Commit Charge liegt bei etwa 50%.

Laut Windows Taskmanager (in der VM) sind 1.24-1.3 GB an Ram genutzt, bei 1.5 GB maximal
Ergänzung ()

firexs schrieb:
Kann dem nur zustimmen. Eine HDD ist für WOW einfach zu langsam. Damit hat dann die CPU auch nicht so schnell die Daten und 'langweilt' sich. Eine SSD gibt dem ganzen aber mehr schub und die CPU kann, muss und darf schneller arbeiten, bzw hat mehr Last.

Wenn man aber schon mit sovielen Botsystemen arbeitet, sollte man überlegen, alle VMs auf SSD zu knallen.
Und wenn das Geld locker sitzt, ein HW-Raidcontroller mit Ram und BackupUnit.

WoW ist und war schon immer mehr ein Datenbanksystem. Grafik ist da nur zweitrangig.

lg
fire

Ursprünglich hatte ich auch nur SSDs genutzt, damit war dann allerdings schneller die Grenze erreicht als mit den HDDs, bei meinem Test war die CPU Auslastung bei 8 VMs am niedrigsten solange maximal 3 VMs auf einer SSD laufen und nicht mehr. Daher bin ich dazu übergegangen auf HDDs zu bauenn, wie es jetzt wäre wenn ich 8 SSDs verbaue kann ich nicht sagen, soviele hatte ich jetzt nicht für die Rechner geholt um es zu testen.

Um die CPU jetzt nicht komplett zu überfordern durch die Zugriffe wären das bei meinen Testergebnissen 8 SSDs (min. 160 GB -> 240 GB SSDs wären am günstigsten). Wie stark wäre denn der erwartete Leistungsschub wenn ich bei 3 VMs pro SSD bleiben würde und anstatt die 4 HDDs für die 20 VMs dann auf sagen wir mal 8 SSDs umsteige? Jemand vllt ne Ahnung? Ich würds testen wenn es zu erwarten wäre wenn ich dadurch wenigstens 3 VMs mehr packen würde, dann würde sich der Umstieg finanziell lohnen.
 
Zuletzt bearbeitet:
http://forums.overclockers.co.uk/showthread.php?t=18215587 ist von 2010, und die Erweiterungen seit damals bedeuten mehr RAM Verbrauch, nicht weniger.
Man sieht, WoW alleine braucht da schon 1GB, dein OS und dein Bot werden aber kaum in 300MB passen, und wie gesagt, WoW ist auch gewachsen.
Bist du sicher daß es nur 1,3GB sind? Wenn du in Zukunft Werte nennst, bitte nur absolute Angaben und niemals Prozentwerte. Ich hab übrigens den Process Explorer explizit aus gutem Grund erwähnt und nicht den Taskmanager.

PS: bei 15 oder mehr VMs solltest du über eine richtige Type 1 Virtualiierungslösung nachdenken, also ESXi, Xen, kvm. Keine Desktopvirtualisierung.
 
Zuletzt bearbeitet:
HLGez2J.jpg

So sieht es in der VM aus
 
Dann gib einer VM mal 2GB, denn wie du siehst: 1.7GB genutzt. Physisch sind 1.3 in Benutzung und die restlichen 200MB wohl Minimalcache.
 
Ach das waren jetzt 1.6 GB Ram in der VM,wo ich den Screen drin gemacht hab... sorry wenn der Screenshot Verwirrung gestieftet hat. In den VMs mit 1.5 GB zugeteilten RAMs liegt er bei 1.6 GB Ram.

Werds nachher mal testen ob es was bringt den RAM zu erhöhen, wobei ich in den Ladebalken (sind relativ kurze) keine Sprünge bei der Auslastung wirklich sehen konnte.
 
Zuletzt bearbeitet:
Der RAM läuft am Dauerlimit und wenn die Auslagerungsdatei nicht abgeschaltet ist, dann wird auch die unter diesen Umständen ständig aktiv sein.
 
Zurück
Oben