View previous topic :: View next topic |
Author |
Message |
tranqil n00b
Joined: 25 Oct 2012 Posts: 6
|
Posted: Mon Nov 11, 2013 11:29 am Post subject: Qemu verursacht regelmäßig hohe CPU-Last |
|
|
Hallo liebe Leute,
ich habe ein sonderbares Problem mit meiner libvirtd/qemu Installation, bzw. der Prozess der einzigen Domain verursacht alle paar Sekunden extrem hohe CPU-Last auf dem Hostsystem, obwohl nicht einmal 50% der zugewiesenen CPU-Power im Gast-System in Anspruch genommen werden. Auf dem virtualisierten Windows 7 Host laufen mehrere Gameserver, leider führen diese "Ressourcenengpässe" wohl zu Lags auf diesen. Nachfolgend die Domain-Konfiguration wie sie ausgeführt wird:
Code: |
/usr/bin/qemu-system-x86_64 -machine accel=kvm -name server-1-01 -S -machine pc-i440fx-1.4,accel=kvm,usb=off -cpu SandyBridge,+erms,+smep,+fsgsbase,+rdrand,+f16c,+osxsave,+pcid,+pdcm,+xtpr,+tm2,+est,+smx,+vmx,+ds_cpl,+monitor,+dtes64,+pbe,+tm,+ht,+ss,+acpi,+ds,+vme -m 4096 -realtime mlock=off -smp 3,sockets=3,cores=1,threads=1 -uuid ddb46ed5-affc-bac7-fabd-b663abedcaf8 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/data/virtual//.config/libvirt/qemu/lib/server-1-01.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime -no-shutdown -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive file=/data/virtual/domains/server-1-01.ovl,if=none,id=drive-ide0-0-0,format=qcow2 -device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 -netdev user,id=hostnet0 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:b6:66:49,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -device usb-tablet,id=input0 -vnc 127.0.0.1:0 -k de -device VGA,id=video0,bus=pci.0,addr=0x2 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4 -redir tcp:3389::3389 -redir udp:27888::27888 -redir udp:27900::27900 -redir udp:27901::27901 -redir udp:27015::27015
|
Noch ein paar Infos zum Hostsystem:
nodeinfo:
Code: |
CPU model: x86_64
CPU(s): 8
CPU frequency: 3400 MHz
CPU socket(s): 1
Core(s) per socket: 4
Thread(s) per core: 2
NUMA cell(s): 1
Memory size: 16317072 KiB
|
capabilities:
Code: |
<host>
<uuid>16531585-d506-47dd-a642-b7fcb5154bf6</uuid>
<cpu>
<arch>x86_64</arch>
<model>SandyBridge</model>
<vendor>Intel</vendor>
<topology sockets='1' cores='4' threads='2'/>
<feature name='erms'/>
<feature name='smep'/>
<feature name='fsgsbase'/>
<feature name='rdrand'/>
<feature name='f16c'/>
<feature name='osxsave'/>
<feature name='pcid'/>
<feature name='pdcm'/>
<feature name='xtpr'/>
<feature name='tm2'/>
<feature name='est'/>
<feature name='smx'/>
<feature name='vmx'/>
<feature name='ds_cpl'/>
<feature name='monitor'/>
<feature name='dtes64'/>
<feature name='pbe'/>
<feature name='tm'/>
<feature name='ht'/>
<feature name='ss'/>
<feature name='acpi'/>
<feature name='ds'/>
<feature name='vme'/>
</cpu>
<power_management/>
<migration_features>
<live/>
<uri_transports>
<uri_transport>tcp</uri_transport>
</uri_transports>
</migration_features>
<topology>
<cells num='1'>
<cell id='0'>
<memory unit='KiB'>16317072</memory>
<cpus num='8'>
<cpu id='0' socket_id='0' core_id='0' siblings='0'/>
<cpu id='1' socket_id='0' core_id='0' siblings='1'/>
<cpu id='2' socket_id='0' core_id='1' siblings='2'/>
<cpu id='3' socket_id='0' core_id='1' siblings='3'/>
<cpu id='4' socket_id='0' core_id='2' siblings='4'/>
<cpu id='5' socket_id='0' core_id='2' siblings='5'/>
<cpu id='6' socket_id='0' core_id='3' siblings='6'/>
<cpu id='7' socket_id='0' core_id='3' siblings='7'/>
</cpus>
</cell>
</cells>
</topology>
<secmodel>
<model>none</model>
<doi>0</doi>
</secmodel>
</host>
|
Vielleicht kann mir ein KVM-Crack dabei helfen, wie ich das Problem etwas eingrenzen kann. Momentan zeigen mir weder qemu noch libvirtd irgendwelche Fehlermeldungen.
Hoffe die Probleme resultieren nicht aus dem verwendeten "user-mode" Netzwerk, allerdings kann ich mir das eigentlich auch nicht vorstellen, bin nicht bereit für diesen eher unwichtigen Server eine Bridge einzurichten.
Vielen lieben Dank! |
|
Back to top |
|
|
mike155 Advocate
Joined: 17 Sep 2010 Posts: 4438 Location: Frankfurt, Germany
|
Posted: Mon Nov 11, 2013 4:51 pm Post subject: |
|
|
Zunächst einmal: was heißt hohe Last? Load-Average? CPU-Ausnutzung? Poste mal die ersten 10 Zeilen von 'top'.
Ich würde erst einmal weitere Daten sammeln. Dazu würde ich alle Game-Server unter Windows stoppen. Wie ist die CPU-Last dann auf dem
Linux Host System? Dann würde ich die Gameserver einzeln starten und schauen, bei welchen von den Game-Servern das Problem auftritt.
3 CPUs ist eher keine gute Wahl - ich würde entweder 2 oder 4 nehmen - aber das ist sicher nicht der Grund für das beschriebene Problem. |
|
Back to top |
|
|
tranqil n00b
Joined: 25 Oct 2012 Posts: 6
|
Posted: Tue Nov 12, 2013 6:22 pm Post subject: |
|
|
Hallo bug_report, vielen Dank für deine Antwort.
Mit hoher Last meine ich, dass alle verwendeten CPUs (in diesem Fall 3), alle 4-5 Sekunden zu 90-100% ausgelastet sind. Und dann aber auch nur für maximal eine Sekunde. Die Durchschnitsslast des Hostsystems wird dadurch nicht merklich belastet.
Code: |
top - 19:16:45 up 248 days, 10:45, 25 users, load average: 1.04, 0.99, 0.96
Tasks: 155 total, 1 running, 154 sleeping, 0 stopped, 0 zombie
%Cpu(s): 5.5 us, 7.1 sy, 0.0 ni, 87.3 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 16317072 total, 15738112 used, 578960 free, 628572 buffers
KiB Swap: 16780284 total, 431064 used, 16349220 free, 8815792 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
18737 virt 20 0 4634900 4.015g 5308 S 101.2 25.80 1959:26 qemu-system-x86
...
|
Auch ohne gestartete Gameserver, wird die ungewöhnlich hohe CPU-Last erzeugt, während das Gastsystem im Durchschnitt auf 20% Auslastung kommt.
Quote: | 3 CPUs ist eher keine gute Wahl - ich würde entweder 2 oder 4 nehmen |
Ich hatte den Server die ganze Zeit unter 2 CPUs betrieben und dies erst vor kurzem auf 3 geändert (in der Hoffnung etwas an diesem Last-Problem zu ändern), aber das hat rein garnichts bewirkt. |
|
Back to top |
|
|
mike155 Advocate
Joined: 17 Sep 2010 Posts: 4438 Location: Frankfurt, Germany
|
Posted: Tue Nov 12, 2013 8:04 pm Post subject: |
|
|
Hallo tranqil,
OK, Dein System verhält sich ungewöhnlich. Wenn auf dem Gast-Windows keine Programme laufen, sollte die Ausgabe von top auf dem Linux-Host ungefähr so aussehen:
Code: |
top - 20:34:52 up 1 day, 23:16, 3 users, load average: 0,08, 0,10, 0,12
Tasks: 184 total, 1 running, 183 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0,6 us, 0,8 sy, 0,0 ni, 98,7 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
KiB Mem: 32718416 total, 6477580 used, 26240836 free, 791412 buffers
KiB Swap: 0 total, 0 used, 0 free, 2340900 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
14703 kvm 20 0 2503744 1,988g 2148 S 7,313 6,371 2:12.47 qemu-system-x86 |
D.h. man sieht auf dem Linux Host ein paar Prozent CPU-Last, aber bei weitem nicht in der Größenordnung, die Du geschrieben hast. Und die Windows CPU-Auslastungs-Anzeige auf dem Windows-Gast sollte 0% oder vielleicht 1% ausgeben.
Als nächstes habe ich folgende Fragen:
- Wie kommen die 20% CPU-Last unter Windows zustande? Die CPU-Last, die Windows anzeigt, sollte doch im Leerlauf fast bei 0 liegen, oder? Laufen unter Windows noch Programme wie: Bildschirmschoner, Anti-Virus-Programm, Disk-Optimizer? Wenn Windows 20% CPU-Last anzeigt, liegt das Problem wahrscheinlich in der Windows VM und ich würde erst einmal dort optimieren, bis Windows im Leerlauf nur noch 0% anzeigt. Welche Windows-Version benutzt Du?
- Welchen Linux-Kernel und welche Qemu-Version verwendest Du auf dem Host-System? Läuft QEMU wirklich mit dem KVM-Beschleuniger? Oder funktioniert KVM nicht?
- Gibt es IO-Last auf dem Linux Host-System? Was sagen die Ausgaben von iostat oder iotop?
|
|
Back to top |
|
|
tranqil n00b
Joined: 25 Oct 2012 Posts: 6
|
Posted: Sat Nov 16, 2013 8:20 am Post subject: |
|
|
Sorry für die verspätete Antwort:
Es ist Windows 7 im Einsatz, auf diesem befand sich neben den Gameservern lediglich ein AV-Programm - und wie ich jetzt nachträglich festgestellt habe, hat dieses auch dafür gesorgt, dass eine permanente Grund-CPU-Last von <25% zu verzeichnen war. Ich habe das Ding mal runtergeworfen. Jetzt zeigt Windows in der Tat kaum noch Last an - das Hostsystem schwankt aber immer noch stark. Ich werde das ein paar Tage beobachten und dann noch einmal berichten. Vielleicht war das des Rätsels Lösung.
Aber noch zur Vervollständigung:
Kernelversion: 3.10.1-hardened-r1
QEMU emulator version: 1.6.1
Hardwareseitige Virtualisierungsunterstützung ist im BIOS aktiviert und mit Linux Guests habe ich auch keine Probleme, allerdings laufen die auch ohne GUI.
IO-Auslastung war das erste was ich über einen längeren Zeitraum gecheckt hatte, dachte zuerst, es gäbe vielleicht ein Problem mit dem Controller, aber auch hier sieht mit den Schreib-/Leseraten alles gut aus. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|