Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Qemu verursacht regelmäßig hohe CPU-Last
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German)
View previous topic :: View next topic  
Author Message
tranqil
n00b
n00b


Joined: 25 Oct 2012
Posts: 6

PostPosted: Mon Nov 11, 2013 11:29 am    Post subject: Qemu verursacht regelmäßig hohe CPU-Last Reply with quote

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
View user's profile Send private message
mike155
Veteran
Veteran


Joined: 17 Sep 2010
Posts: 1305
Location: Frankfurt, Germany

PostPosted: Mon Nov 11, 2013 4:51 pm    Post subject: Reply with quote

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
View user's profile Send private message
tranqil
n00b
n00b


Joined: 25 Oct 2012
Posts: 6

PostPosted: Tue Nov 12, 2013 6:22 pm    Post subject: Reply with quote

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
View user's profile Send private message
mike155
Veteran
Veteran


Joined: 17 Sep 2010
Posts: 1305
Location: Frankfurt, Germany

PostPosted: Tue Nov 12, 2013 8:04 pm    Post subject: Reply with quote

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
View user's profile Send private message
tranqil
n00b
n00b


Joined: 25 Oct 2012
Posts: 6

PostPosted: Sat Nov 16, 2013 8:20 am    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) All times are GMT
Page 1 of 1

 
Jump to:  
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