[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [1/2 OT] MySQL Storage Files



On 17.Feb 2005 - 12:28:43, Hagen Kuehnel wrote:
> Wollen wir uns über das Thema nun wirklich unterhalten?

Ein kleiner Einwurf von mir...

> On Thu, Feb 17, 2005 at 10:48:12AM +0100, Thomas Kosch wrote:
> > On Day 48 of Chaos 3171, Hagen Kuehnel wrote:
> > 
> > > On Thu, Feb 17, 2005 at 03:17:53AM +0100, Thomas Kosch wrote:
> > >
> > >> Wobi ich diese Aussage bezweifeln möchte. Ich hatte ende letzten Jahres
> > >> das "Vergnugen" das ganze mit einem Gesamtdatenbankvolumen von 20 GB
> > >> durchziehen zu dürfen. Mit dem  Weg mysqldump | gzip | ssh | gunzip |
> > >> mysqldump war das ganze in rund 8 Minuten gegessen. Ich glaube nicht das
> > >> ich schneller gewsen wäre wenn ich das Ganze "binär" kopiert hätte.
> > >
> > > nette Performance. Das dürfte das absolute Minimum für den Transfer
> > > gewesen sein, gzip sollte in 0,nichts komprimiert haben.
> > 
> > Wie kommst du auf das schmale Brett?
> 
> Weil 8 Minuten für 20GB verdamt wenig Zeit ist, selbst, wenn man nur
> diese Datenmenge übers Netz kopiert. Welches 100MBit-Netz schafft
> wirklich 100MBit (OK, ich habe Cisco-Switches noch nicht ausprobiert).

Er hat 20GB DB-Volumen, das heisst aber nicht, dass er die gesamte
Menge übers Netz kopiert...

> > Nein. Ich hatte das was ich geschrieben habe nicht ohne Grund so
> > geschrieben wie ich es gschrieben hatte.
> 
> Und oben steht (s.o.), dass Du in 8 Minuten 
> 
> - mysqldump 20GB (1. lesen/schreiben)

Ok, wobei die Ausgabe von mysqldump direkt in eine Pipe gejagt wird,
wodurch da kein "schreiben" ala HDD notwendig ist, du hast also volle
Leseleistung.

> - gzip 20GB*FaktorX (2. lesen/schreiben)

gzip ist IMHO auch beim Komprimieren recht fix...

> - ssh 20GB*FaktorX (3. lesen/schreiben)

Falsch, hier hast du nicht mehr 20GB, sondern je nach Daten nur noch
einen Bruchteil. Wenn z.B. viele Daten == NULL sind, dürfte das ganze
insgesamt gut komprimieren. Wenn man vorraussetzt das kein normaler
Mensch BLOBS in ne MysqlDB packt ;-) dann denke ich kann man durchaus
mit 2/3 bis 3/4 Komprimierung (also 5-6.6GB) rechnen.

> - gunzip 20GB*FaktorX (4. lesen/schreiben)

Jetzt erst sinds wieder 20GB...

> - mysql 20GB*FaktorX (mit mysqldump kann man nicht restoren)
> 			(5. lesen/schreiben)

Der 2. Festplattenzugriff - diesmal schreibend, anderer Rechenr...

> ausgeführt hast. Und das nehme ich Dir nur ab, wenn beide Maschinen
> Hardware vom Feinsten haben, weil es sonst nicht funktioniert - rein
> arithmetisch ist es mit der Performance normaler 0815-Hardware nicht zu
> machen.

Hmm, was ist, wenn Mysql schon 25% der Daten im RAM hat? 

> IDE-ATA133 benötigt bei voller Auslastung eine Kanals 2,5 Minuten für
> den Transfer von 20GB. Bei Nutzung von zwei Platten an zwei seperaten
> IDE-Kanälen kommst Du mit dem notwendigen 5maligen lese/schreibvorgängen
> auf eine Mindestzeit von 12,5 Minuten - der 3 Vorgang kann nur mit

Er kopiert aber übers Netz, hat also auf dem Rechner nur die 2.5
Minuten und auf dem anderen ebenfalls. Wobei ich bisher noch keinen
"Benchmark" gesehen habe der wirklich 133MB/s schafft. Vielleicht mit
SATA...

> 133MB/s ablaufen, wenn Du GigaBit-Ethernet nutzt. 
> .....usw. usf.
> 
> Und das alles ohne Wartezeit auf den Prozessor. Reine Peripherie-Last,
> also I/O-wait.

Ich gebe dir durchaus Recht, dass die Zeit ziemlich eng wird wenn man
das mal realistisch durchrechnet, selbt wenn der Dump gut komprimiert
wird, braucht der über ein 100MBit Netz noch mind. 8 Minuten, 1GBit
Netz wären dann aber so 0.8 Minuten (Ich rechne normalerweise mit
10MB/s auf nem 100MBit Netz..)

> Sollte ich mich verrechnet haben, bitte ich um Korrektur.

Ja, du berücksichtigst nicht das die Daten über ein GBit Netz nahezu
keine Zeit brauchen (im Vgl. zum auslesen) und das dort wesentlich
weniger Daten rübergehen als 20GB. Weiterhin können die 2 Rechner
parallel arbeiten - sprich du hast effektiv nur die Zeit die der
Datentransfer durchs Netz braucht + Overhead.... 

> PPS: Nachweis - eine hda, moderner Bauart
> 
> /dev/hda:
>  Timing buffer-cache reads:   2308 MB in  2.00 seconds = 1153.02 MB/sec
>  Timing buffered disk reads:  166 MB in  3.03 seconds =  54.74 MB/sec

Hmm, wenn ich das mal nachrechner 55MB/s lesen, macht zum Lesen von
20GB 6 Minuten, inkl. Overhead und ähnlichem würde ich da 8 Minuten
durchaus realistisch finden...

Andreas

-- 
You will be a winner today.  Pick a fight with a four-year-old.



Reply to: