Benchmarking Xen/Linux

24Feb07

Alle Tests in domU und dom0 machen, die Tests funktionieren auch alle auf nem normalen Linuxrechner und in Virtualisierungsdingern. Nen Tag brauchst Du aber auch fuer banalere Tests.

Disk-I/O:

  • Atkueller Durchsatz ist mit sar -d 20 1 gut zu sehen
  • hdparm -tT /dev/hda
  • dd if=/dev/hda of=/dev/null bs=1024k count=4096 (damit man nicht nur den Diskcache testet)
  • Rohplattendurchsatz eigentlich nur via rawdevices sichbar
  • FreeSBIE booten, dd if=/dev/rda0 of=/dev/null bs=1024 count=4096

Netzwerktests:

  • dom0 <-> domU
  • dom0 <-> non-Xen-Server
  • domU <-> domU
  • dom0 Rechner mit Standardkernel (knoppix, etc) <-> non-Xen-Server

Standardtest I/O+CPU:

Ein Shellscript mit folgenden Kommandos erstellen (braucht 200+ MB in /tmp):

  • mkfs builddisk # filesystem kannste Dir aussuchen :p
  • mount -o noatime builddisk /usr/local/src
  • cd /usr/local/src
  • tar -xjf /tmp/gcc-4.0.x-src.tar.bz
  • mkdir gcc-build
  • cd gcc-build
  • export CC=“ccache gcc“
  • ../gcc-4.x…./configure –prefix=/tmp/gcc-crashtest –with-irgendwas –without-irgendwas
  • make -j 16

Testen, wenn es laeuft, gut so🙂

Als Benchmark folgendermassen zu benutzen:

  • rebooten
  • time script.sh

Falls Dir die Laufzeiten zu hoch sind:

  • weniger gcc-module mitbauen
  • anstatt /tmp eine Ramdisk von 256MB benutzen, die gcc-source kann ruhig weiter in /tmp liegen. Das sieht natuerlich auch besser aus, wenn da steht „Building temporary Ramdisk“🙂

Gut kaeme noch eine Runde Web- und Javabenchmarks, aber erfahrunggemaess sind die ein wenig zeitaufwaendig in der Konfiguration, also ein extra-Tag.

 Weitere sinnvolle Tests:

  • Zeit vom Bootprompt des Hostrechners bis zur Verfuegbarkeit eines virtualisierten Webservers via http
  • Zeit zum Starten eines virtualisierten Rechners


5 Responses to “Benchmarking Xen/Linux”

  1. Für Deinen „Standardtest I/O+CPU“ hätte ich ne bessere Idee, gcc ist doch viel zu öde und belastet die CPU selber nicht wirklich, da der Compiler meiste Zeit mit warten beschäftigt ist.
    Es gibt ein paar Algorithmen in der linearen Algebra die mit Datensätzen arbeiten können, die deutlich grösser als der RAM ist – die Algorithmen haben schon von selber eine Art „swapping“ eingebaut – das schöne daran ist, dass es nicht nur CPU+I/O Last erzeugt, sondern weil du gewaltigste Mengen Daten von der CPU durch den Cache in den RAM hin- und herschubst, kannst du auch was über den Memorybus/die Crossbar/deinen kleinen stinkenden Cache/dein lausiger Clusterinterconnect lernen.
    Schau mal in „Numerical Recipes in C“[1], da werden einige solcher Algorithmen beschrieben. Könnte auch sein, dass im LINPACK[2] solche Algorithmen umgesetzt sind.
    Gruss, Alex.

    [1] http://www.nr.com/
    [2] http://www.netlib.org/linpack/

  2. Hey Flo!

    Vielen Vielen Dank für diese Ausführliche Benchmark Beschreibung!
    Hast was gut bei mir

    gruss

    Ferdinand

  3. 3 darkfader

    Der Bart hat aber nur einen Tag Zeit zum Benchmarken, also haette ich wenn dann noch was passendes finden muessen, notfalls eher etwas in Richtung bz2 nach /dev/null entpacken, weil simpler.

    Der make -j 16 macht das ganze eh wieder I/O gebunden, was ich aber auch bewusst so gemacht hatte. Der CPU-Overhead der ganzen Produkte ist so minimal, dass er nicht allzu sehr ins Gewicht faellt, wenn man nicht per GUI auf dem entsprechenden System arbeitet, wird man nicht ’spueren‘ koennen, ob da einer auf 15 rechner auf der Kiste laufen (mit Hardwarevirtualisierung bei VMWare).
    Andererseits reichts vermutlich, das gcc-skript auf 5 virtuellen Rechnern laufen zu lassen, um die Gesamtmaschine mit Contextswitches usw. in die Knie zu zwingen.
    Allerdings gibt’s dafuer auch noch einen besseren Scheduler.

    Gruessen

  4. Also,

    soweit ist der Benchmark gut durchgelaufen,
    wenn ich ein bissl mehr Zeit habe dann werde ich auch
    das mal vom Alexander testen thanks fuer die tips nochmal.

    So ich muss hier weiter server schrank aufbauen!

    greets

    Ferdinand aka. Bart

  5. 5 darkfader

    Aufbauanleitung

    hier


Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s


%d Bloggern gefällt das: