Filesystem für MySQL & SWAP Einstellung

jeipack

Erfahrenes Mitglied
Hi
Ich will aus meinem MySQL Server mehr performance rausholen.
Einerseits sind da die Einstellungen beim mysqld selbst, die ich wohl nach [1] machen werde. Andererseits aber die dahinter liegenden Ressourcen.
Da wäre mal das Filesystem. Grundsätzlich würde ich auf ext2 tippen. Allerdings rein aus Gewohnheit. Welches Filesystem ist also das "beste" für MySQL bezüglich performance?

Dann kommt die SWAP Partition. Sofern man genug RAM hat 2 bis 4GB und ausser dem MySQL Server nichts laufen hat könnte man die SWAP doch deaktivieren um somit nicht auf langsame Harddiskauslagerung zu setzen.

Als OS selbst verwende ich Linux Debian. Welche Version ist da zu empfehlen? testing?

1: http://dev.mysql.com/doc/refman/5.0/en/optimizing-the-server.html


PS: Auch Tipps zur Steigerung der performance die hier nicht erfragt wurden sind natürlich herzlich willkommen :)

mfg und vielen Dank
jeipack
 
Da wäre mal das Filesystem. Grundsätzlich würde ich auf ext2 tippen. Allerdings rein aus Gewohnheit. Welches Filesystem ist also das "beste" für MySQL bezüglich performance?
Ext2 mag zwar in Sachen Performance gut dabei sein, jedoch gibt es auch noch das leidige Thema der Datenintegritaet im Falle eines Systemausfalles. Ext2 fuehrt kein Journal sodass bei einem Systemausfall auch mal Daten verloren gehen koennen. Das muss nicht passieren, kann es aber (kann es aber auch durchaus bei einem Journaling FS, nur gibt es eben zusaetzlichen Schutz durch das Journal).
In Sachen Performance wird wohl kein Dateisystem mit dem Raw-Zugriff auf die Platte, eben am VFS des Kernels vorbei, sein. Ein ganz kurzer Blick in die Doku suggeriert mir aber, dass dies nur mit der InnoDB-Engine geht.
http://dev.mysql.com/doc/refman/5.0/en/storage-engines.html
http://dev.mysql.com/doc/refman/5.0/en/innodb-raw-devices.html

Dann kommt die SWAP Partition. Sofern man genug RAM hat 2 bis 4GB und ausser dem MySQL Server nichts laufen hat könnte man die SWAP doch deaktivieren um somit nicht auf langsame Harddiskauslagerung zu setzen.
Es ist schon richtig, dass bei einem System mit so viel Speicher die Swap-Partition ziemlich gelangweilt sein duerfte.
Ich hab 1GB Speicher und selbst wenn ich gross rumkompiliere werden selten mehr als ein paar MB geswappt.
Zusaetzlich kann man auch, unter Kernel 2.6, die "Swappiness" ueber /proc/sys/vm/swappiness einstellen. Der Default-Wert ist hier 60. Mehr bedeutet, dass schneller mal ausgelagert wird, bei 0 sollte eigentlich nur im absoluten Notfall geswappt werden.
Allgemein wuerde ich aber weiterhin zu einer Swap-Partition raten. Wenn MySQL viel zu tun hat wird es eh nicht swappen, sondern eben eher Daten die zwar im Speicher sind, aber eben nicht benoetigt werden.
 
Mhh raw-Zugriff auf die HDD?
Nette Sache =)
Als Engine wird ausschlisslich InnoDB verwendet, von daher muss ich das fast mal probieren :)

Was die Datenintegritaet anbelangt so werden alle DBs/Tabellen jede Nacht gesichert.
Somit gehen keine Daten verlohren. Nur das Wiederherstellen braucht mehr Zeit.


Achja da du schon den Kernel erwähnst. Ich hab mich jetzt etwa 1 Jahr nicht mehr gross mit Linux beschäftigt. Damals hies es noch vermehrt für Produktivsysteme den 2.4er zu benutzen. Aber ich denke nicht dass da noch aktuell ist? Also wenn ein System neu aufgesetzt wird lieber gleich den 2.6er verwenden?

Eine Frage die auch noch im Raum steht (und die den 2.6er zwingend voraussetzen würde) ist single oder dualcore.
Link auf RootForum wo es genau darum geht:
http://www.rootforum.de/forum/viewtopic.php?t=41092

Da ausschliesslich innoDB verwendet wird wäre die Nutzung zweier Kerne durchaus möglich. Allerdings wird ein Query auch nur von einem Kern verarbeitet und somit bin ich mir noch nicht sicher ob sich dies wirklich lohnen würde.

Da ich dafür aber erst in ca 2 Wochen richtig Zeit bekomme würde ich den Thread gerne benutzen um weitere Infos zusammen zu tragen. Ich hoffe ihr habt nichts dagegen :)

Grüsse und vielen Dank (auch für noch folgende Infos)
jeipack
 
Achja da du schon den Kernel erwähnst. Ich hab mich jetzt etwa 1 Jahr nicht mehr gross mit Linux beschäftigt. Damals hies es noch vermehrt für Produktivsysteme den 2.4er zu benutzen. Aber ich denke nicht dass da noch aktuell ist? Also wenn ein System neu aufgesetzt wird lieber gleich den 2.6er verwenden?
Ich sehe keinen Grund den 2.6er Kernel nicht einzusetzen. Er laeuft schnell, zuverlaessig und stabil.
In Sachen Performance ist er der 2.4er-Serie meiner Meinung nach ein gutes Stueck ueberlegen.

Allerdings wird ein Query auch nur von einem Kern verarbeitet und somit bin ich mir noch nicht sicher ob sich dies wirklich lohnen würde.
Kein Problem, so kannst Du dann 2 Queries gleichzeitig abarbeiten wenn Du mit einem DualCore-/DualCPU-System arbeitest. ;)
 
So ich hab mir nun mal die Hardware zusammengesucht

2.33GHz Xeon 32bit DualCore, 1333/4M FSB
4 GB DDR2 RAM
RAID Adapter mit 15k SAS (Serial Attached SCSI)

Debian kommt mit dieser kofiguration klar, oder? Auch mit dem Raid?

Die Datenbank wird direkt via raw-Zugriff ohne FileSystem abgelegt.

Als System würd ich i386 stable Version von Debian nehmen. Kernel 2.6er
Als MySQL Server nehm ich: mysql-server-5.0 von dotdeb.org

Was meint ihr dazu?

Gruss
 
Zurück