Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Performanz auf virtueller Maschine

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von kasselkarsten, 28 Februar 2013.

  1. kasselkarsten

    kasselkarsten Benutzer

    Hallo Zusammen,

    ich habe eine recht große (120Gb) Datenbank InnoDB von einem Desktop-PC (8Gb, 1xSATA) auf eine virtuelle Maschine (2CPU, 16Gb RAM, Windows 7) portiert.
    Auf beiden System läuft die Server-Version 5.5.28 (64Bit). Die MySQL-Systemvariablen sind identisch. Ich benchmarke mit einem komplexem Statement direkt (remote) auf den Maschinen und musste feststellen, dass der Desktop-PC 3-4 mal schneller ist als die virtuelle Maschine!
    Beim genaueren Betrachten liegt es wohl an der Datenübertragungsrate zu den Festplatten, obwohl auf der virtuellen Maschine die Plattenanbindung (SAN) hochperformant ist. Beim Kopieren von Daten mit dem Windows-Explorer werden auch sehr hohe Geschwindigkeiten erreicht. Die Zugriffszeit ist unter 4ms und ich operiere mit einem RAW-Device mit 16k Blockgröße.

    Schaue ich mir aber die Datentransferraten mit dem Windows-Resourcen-Manager an, kann ich sehen, dass die virtuelle Maschine kaum mehr als 600 kb/s schafft die SATA-Platte im Desktop-PC aber >50 MB/s erreicht.

    Nun weis ich nicht mehr weiter, habe schon manchen Abend mit Recherchen verbracht und alles Mögliche erfolglos probiert.

    Was kann das sein?
    Was mache ich falsch?

    vielen Dank für Eure Antworten
    Karsten
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Nun, dann ist wohl die SAN-Anbindung nicht wirklich hochperformant. Wie las ich mal: "virtuelle Hardware - virtuelle Performance'.


    Warum betreibt man einklich einen DB-Server unter Windows?


    Andreas
     
  3. kasselkarsten

    kasselkarsten Benutzer

    es ist auch eine Frage des Preises, ein dedizierter Server ist eben kein Schnäppchen und Windows taugt 'eigentlich' allemal für meine Ansprüche.

    Aber mal im Ernst, wieso erreiche ich beim Kopieren von Dateien auf der VM 150 MB/s und MySQL nicht?
    Ist eine Frage der MySQL-Einstellung oder eher die Konfiguration des SAN?

    Gruß
    Karsten
     
  4. akretschmer

    akretschmer Datenbank-Guru


    Kann man erst mal nur wild raten. Vielleicht macht der Explodierer kein fsync. Wenn Du das richtig messen willst, brauchst bonnie oder sowas. Dem Windows-Explorer würde ich eher nicht als sinnvolles Benchmak-Tool betrachten ...

    Andreas
     
  5. kasselkarsten

    kasselkarsten Benutzer

    Du hast Recht. Das erste Posting ist wohl eher als verzweifelter Hilferuf zu verstehen.
    Ich konkretisierte:

    Als Benchmarker-Tool nehme ich auf beiden Systemen den Windows-Resource-Manager und kann damit ganz gut die Schreib- und Lesegeschwindigkeiten auf den relevanten Dateien zumindest vergleichen.
    Kopierte ich Dateien mit dem Windows-Explorer ist das SAN sehr schnell, aber die Zugriffe via MySQL-Server-Software sind unglaublich langsam. Die Transferrate bricht während eines querys bis auf 500kb/s ein, wobei die 2 CPU kaum etwas leisten müssen. RAM 16 Gb genügt.

    Was ich schon probiert habe:
    Verschiedene Plattenkonfigurationen
    Cpu-Anzahl
    Virenscanner deinstalliert
    Die üblichen performance-Parameter von MySQL
    Unterschiedliche Konstellationen der tablespaces und log-dateien inkl. one file per table


    Der Admin meint eine andere DB (MSSql) läuft problemlos ohne besondere Maßnahmen in der gleichen Umgebung - hmmm...
    Was genau meinst Du mit der Explodierer kann kein fsynch?

    Karsten
     
  6. akretschmer

    akretschmer Datenbank-Guru

    Es geht um fsync(), das ist ein System-Call. Wenn eine transaktionsbasierte Datenbank (InnoDB) der Applikation melden will, daß alles auf Platte geschrieben ist, dann darf sie an dieser Stelle nicht 'lügen'. Also gibt es fsync(), welches alle Caches (Betriebssystem, Plattencontroller, Platte) *wirklich* dahin schiebt, wo es hingehört: auf diese komischen runden Scheiben da, wissn's schon.

    Der Windows-Dateiexplodierer hat soviel Ehrlichkeit nicht nötig. Wenn Du was auf USB-Stick kopierst, wird das sehr schnell gehen. Erst wenn Du das 'auswerfen' willst macht es dann einen fsync() - der dauert dann halt nochmal.

    Andreas
     
  7. kasselkarsten

    kasselkarsten Benutzer

    Wie kann ich prüfen, ob da der Fehler liegt bzw. wie kann ich den abstellen?
    Hast du sonst noch eine Idee?

    Karsten
     
  8. akretschmer

    akretschmer Datenbank-Guru

    Ja klar: google nach 'bonnie iops'.

    Andreas
     
  9. akretschmer

    akretschmer Datenbank-Guru

    Also, um das mal auf den Punkt zu bringen: Dein Problem ist offenbar nicht datenbanktechnisch, sondern in Deiner Virtualisierung zu suchen. Insofern bist Du hier falsch.
    Bringe Deine Virtualisierung gescheit zum laufen, dann klappt auch der Rest. Bis dahin kannst ja auch prüfen, ob es *wirklich* MySQL unter Windows sein muß ;-)

    Andreas
     
  10. kasselkarsten

    kasselkarsten Benutzer

    Danke!
     
    akretschmer gefällt das.
  11. Margit

    Margit Fleissiger Benutzer Mitarbeiter

    Zusätzlich zu den hilfreichen Tipps von Andreas noch ein Hinweis:

    Bei vielen Installationen von Mysql ist die my.cnf nur für Myisam optimiert und für Innodb wurde gar nichts eingestellt - d.h. die Defaultperformance ist mehr als lausig! Kontrolliere bitte die my.cnf ob die gängigen Innodb-Performance-Einstellungen klug gewählt sind (oder überhaupt vorhanden).
     
  12. kasselkarsten

    kasselkarsten Benutzer

    Diese Parameter sind exakt so wie auf der Vergleichsmaschine eingestellt und das macht es für mich so unnachvollziehbar, Margit.

    Karsten
     
  13. ukulele

    ukulele Datenbank-Guru

    Eventuell ist die SAN Performance auch nur bei großen Dateien lausig, in jedem Fall interessiert mich der Grund auch :) Darf man fragen womit virtualisiert wird und was für ein SAN im Einsatz ist? (iSCSI / FC? welches Storrage?)
     
  14. kasselkarsten

    kasselkarsten Benutzer

    Ich hatte auch die Option OneFilePerTable eingestellt, so daß keine riesige Datei entsteht - hat aber leider auch nichts gebracht.

    so, hier die Daten der Umgebung:

    VMWare 5.1
    Host – Dell PowerEdge R720, 2x E5-2640, 8x 8GB RAM, Broadcom BCM57711
    Switche – Dell Powerconnect 8024F
    Storage – Dell Equallogic PS4100X iSCSI

     
Die Seite wird geladen...
Ähnliche Themen - Performanz virtueller Maschine
  1. jetwork
    Antworten:
    3
    Aufrufe:
    984

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden