vServer FreeBSD 9.2 Hohe Interruptrate

  • Hallo,


    ich habe festgestellt, dass mein vServer beim Download (ftp/www/scp) bzw. lesen von HDD sehr viel Rechenleistung an Interrupts verschwendet. Laut top ist die Auslastung zwischen 70% und 100%. Der Server ist, solange der Download nicht gestoppt wird, nicht mehr nutzbar, Eingaben ueber ssh brauchen 30 Sekunden ehe sie ueberhaupt angezeigt werden. Habe so ein Verhalten noch nie erlebt, und weiss ehrlich gesagt nicht wie ich es beheben kann, von meiner Seite aus.


    Installiert ist FreeBSD 9.2-RELEASE-p1 #1: Thu Nov 7 23:52:01 CET 2013.


    ein Auszug aus vmstat -i erscheint mir allerdings als normal:
    [Blockierte Grafik: http://home.arcor.de/syst3m/pub/vmstat.png]


    Während eines Downloads (ca. 7-15 KB/s) sieht das ganze dann so in Top aus:
    [Blockierte Grafik: http://home.arcor.de/syst3m/pub/top.png]


    Es ist dabei uebrigens egal ob ein Dienst auf dem Hostsystem oder einer Jail angesprochen wird.
    Support-Ticket habe ich noch nicht eroeffnet, evtl. hat ja jemand 'ne Loesung parat.


    Danke schon mal fuer Vorschlaege.

  • Hast du mittlerweile eine Lösung gefunden, ich habe nämlich das selbe Problem, was den Server bei nur einer HTTP Anfrage nahezu unbenutzbar macht, solange diese nicht abgearbeitet ist :/

  • Also ich habe gerade mal testweise ein Ubuntu-ISO per `fetch` auf meinen FreeBSD9.2-KVMserver geladen und lade es gerade mit scp von dort runter und 'interrupt' im top steigt nur gelegentlich mal auf höchstens 5%.
    allerdings macht der sonst gerade nix.

  • Hast du das 9.1 Image genommen und ein Upgrade gemacht oder selber installiert?


    Bei mir sieht es in etwa so aus:

    Code
    CPU: 42.0% user,  0.0% nice, 27.5% system, 30.6% interrupt,  0.0% idle


    30% sind ein bisschen viel oder?

  • Hast du das 9.1 Image genommen und ein Upgrade gemacht oder selber installiert?
    [...]
    30% sind ein bisschen viel oder?


    Das is eine frische 9.2er Installation von nem offiziellen ISO.


    Ja, so ne Zahl sollte man heute nicht mehr zu sehen bekommen, da die plattencontroller nicht mehr nach jedem fertig übertragenen sektor das OS mit nem Interrupt auf sich aufmerksam machen müssen - erst recht nicht, wenn die HW nur virtuell ist.

  • Ich hab heute mal kurz dazu gegooglet und habe diesen etwas älteren Thread im FreeBSD-Forum gefunden.


    Ich kompiliere gerade ein paar Ports und lade gleichzeit nochmal ein ISO (per `scp`) von meinem KVM-Server runter und irgendwas hat in `systat -vmstat` mit einem mal 200 interrupts bei "virtio_pci" auftauchen lassen, aber in `vmstat -i` ist der virtio-Kram weiterhin unauffällig:


    Anhand der bei Dir zu sehenden Rate würde ich sagen, dass da der virtio-Kram wegen irgendwas rumspinnt.
    Sicher das alles vom vor 9.2 installierten virtio-Port weg ist?

  • Hmmm, mit DTrace sollte sich das genauer eingrenzen lassen, aber leider habe ich davon noch nicht genug Ahnung...


    Aber mir fällt hier bei mir gerade was auf... Ich habe ein Skript aus dem DTrace-Toolkit laufen lassen, um häufig benutzte Kernelfunktionen und -Module zu finden während (mal wieder) das Ubuntu-ISO erst auf den Server und dann zu mir nach hause aufn Laptop kopiert wurde - aber ich kann da nirgendwo was von virtio finden, erst recht kein virtio-Modul:


    Code
    user@server:~:2124% sudo /usr/share/dtrace/toolkit/hotkernel -m
    Sampling... Hit Ctrl-C to end.
    ^C
    MODULE                                                  COUNT   PCNT
    sdt.ko                                                      1   0.0%
    dtrace.ko                                                 130   0.0%
    kernel                                                 452175 100.0%
    user@server:~:2133%


    Wenn bei Euch also statt dem in-Kernel-virtio ein Modul benutzt wird, könnte das der Grund für die Probleme sein.
    (btw: bevor die Skripte benutzt werden können, muss das DTrace-Modul geladen werden, s. Using DTrace)