ubuntuusers.de

Performance Probleme mit Innodb

Status: Ungelöst | Ubuntu-Version: Ubuntu 10.10 (Maverick Meerkat)
Antworten |

nfo

Avatar von nfo

Anmeldungsdatum:
28. Mai 2008

Beiträge: 16

Wohnort: Wien

Hallo,

ich habe letztes Wochenende ein paar Benchmarks mit MySQL und MongoDB gemacht, dabei bin ich auf etwas ungewöhnliches aufmerksam geworden:

Ich habe 1 Mio Datensätze in MySQL geschrieben, das hat unter MyISAM ca 120 sec gedauert, unter Innodb allerdings ca 8 Std !!!

Ich weiss das Innodb langsamer ist, aber das ist doch gelinde gesagt etwas sehr langsam. Daraufhin haben wir den Test mehrmals wiederholt, wie sich raus gestellt hat, trat das Problem unter Debian nicht auf, unter Ubuntu lässt sich das aber reproduzieren. Wir haben daraufhin das Sourcepacket von MySQL selbst mal übersetzt (ohne zusätzliche configure Parameter) woraufhin wir keine Probleme mehr mit der Schreibgeschwindigkeit hatten..

Die Frage die mich seither beschäftigt, welcher Parameter könnte die Schreibgeschwindigkeit dermaßen beeinflussen ?

Unterschied zwischen 32 bit und 64 bit Version konnten wir nicht feststellen.

mysqld Ver 5.1.49-1ubuntu8.1 (default my.cnf)

mfg Andreas

PS: Hier der php code mit dem ich gebenchmarkt hab: http://codejungle.org/bench.tar.bz2

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

hast du schon mal geschaut, ob es bei Launchpad dazu Bugreports gibt?

Gruß, noisefloor

nfo

(Themenstarter)
Avatar von nfo

Anmeldungsdatum:
28. Mai 2008

Beiträge: 16

Wohnort: Wien

auf launchpad habe ich leider nichts passendes gefunden, ich bin mir auch nicht mal sicher ob das überhaupt ein bug ist oder nur ein einstellungsproblem ...

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

ich kenne mich zwar mit PHP quasi nicht aus, aber was mir bei dem Code auffällt: InnoDB ist transaktionssicher, d.h. man muss Transaktionen starten und comitten. Im Code sehe ich aber kein einziges "beginn transaction" oder "commit" - oder macht PHP das automatisch?

Könnte es sein, dass bei dem Benchmark bei InnoBB einfach nur der Puffer vollläuft, das System dann vielleicht swappt und alles lahmt?

Starten den Benchmark doch mal und schau' dir via top an, was passiert.

Gruß, noisefloor

Colttt

Anmeldungsdatum:
29. April 2009

Beiträge: 1517

etwas OT: mich würde dazu noch postgreSQL performance interessieren

TheDarkRose

Avatar von TheDarkRose

Anmeldungsdatum:
28. Juli 2010

Beiträge: 3459

Wenn InnoDB falsch eingestellt und im PHP kein "BEGIN TRANSACTION" und "COMMIT" angegeben wird, dann macht MySQL für jedes Query eine eigene Transaction was sich natürlich dann in die Länge zieht.

nfo

(Themenstarter)
Avatar von nfo

Anmeldungsdatum:
28. Mai 2008

Beiträge: 16

Wohnort: Wien

Also ein swap problem ist es nicht ! Ich werde heute das ganze nochmal mit und ohne autocommit probieren. Auf der Mysql seite selbst ist das so definiert:

In InnoDB, all user activity occurs inside a transaction. If autocommit mode is enabled, each SQL statement forms a single transaction on its own. By default, MySQL starts the session for each new connection with autocommit enabled, so MySQL does a commit after each SQL statement if that statement did not return an error.

nfo

(Themenstarter)
Avatar von nfo

Anmeldungsdatum:
28. Mai 2008

Beiträge: 16

Wohnort: Wien

Auch wenn es schone einige Jahre her ist, der Grund für die Geschwindigkeitseinbußen war, dass autocommit eingeschalten war.

Antworten |