Frage

Die Installation eines MySQL-Servers ist recht einfach.Nach der Installation ist die Konfiguration des Servers jedoch eine wichtige Aufgabe für einen DBA.

Wie sollte ich den MySQL-Server mit 2 GB RAM und 250 GB Festplattenspeicher optimieren, damit er eine gute Leistung erbringt?

Es sollte auch eine ordnungsgemäße Konfiguration der InnoDB Engine vorhanden sein.

War es hilfreich?

Lösung

Hier sind einige meiner Empfehlungen für InnoDB.Meiner Erfahrung nach ist die Größe des Pufferpools am wichtigsten, denn je mehr Daten Sie im Cache behalten können, desto weniger Zeit verbringt Ihr System mit Festplatten-IOs.

http://dev.mysql.com/doc/refman/5.5/en/innodb-buffer-pool.htmlDies ist der Pufferpool, in dem Daten und Index zwischengespeichert werden

innodb_buffer_pool_size=(In Mb, 80% of available RAM), für 2GB würde ich 1536 setzen.

Überwachen Sie Ihr System sorgfältig und seien Sie darauf vorbereitet, diese Variable zu reduzieren, wenn Sie eine Verlagerung bemerken.

http://dev.mysql.com/doc/refman/5.1/en/innodb-parameters.html#sysvar_innodb_additional_mem_pool_sizeHier werden Metadaten gespeichert.Wenn Sie viele Tabellen haben, wäre es sinnvoll, diese zu erhöhen.

innodb_additional_mem_pool_size=16M

http://dev.mysql.com/doc/refman/5.1/en/innodb-parameters.html#sysvar_innodb_data_file_pathHier können Sie den Speicherort der ibdata-Datei festlegen.Wenn Sie die ibdata-Datei auf einer separaten Festplatte ablegen können, die einen separaten Controller verwendet, werden Konflikte reduziert.Seien Sie vorsichtig mit dieser Option.Informieren Sie sich unbedingt über diese Variable, bevor Sie sie verwenden.Wenn Ihre ibdata-Datei mehr als 29 GB benötigt, stoppt MySQL alles, was es tut, und wartet darauf, dass Sie Speicherplatz hinzufügen.

innodb_data_file_path = ibdata1:128M:autoextend:max:29G

Dadurch wird verwaltet, in welchen Schritten die ibdata-Datei vergrößert wird.Wenn Sie also eine wirklich kleine Zahl wie 10 MB eingeben, würde das bedeuten, dass innodb viel Zeit damit verbringen würde, seine ibdata-Datei zu vergrößern, wenn Sie viele Einfügungen hätten.

innodb_autoextend_increment = 128M

Wo sollen die Transaktionsprotokolle abgelegt werden?Wenn Sie die Transaktionsprotokolle auf einer anderen Festplatte mit einem separaten Controller ablegen können, verringert dies auch Konflikte

innodb_log_group_home_dir = /tlog/

Wie groß sind die Protokolldateien?

innodb_log_file_size = 500M

25 % der Pufferpoolgröße ermöglichen die Ausführung großer Transaktionen, ohne dass auf die Festplatte geschrieben werden muss

innodb_log_buffer_size = 384M

Ich definiere auch, wohin das temporäre Verzeichnis gehen soll.Definiert, wo MySQL temporäre Dateien erstellt.Noch eine weitere Möglichkeit, Streitigkeiten zu reduzieren.

Normalerweise lasse ich genügend Platz, um die Neuindizierung der größten Tabelle auf dem Server zu ermöglichen.

tmpdir=/opt/tmp/

Und ein Fehlerprotokoll ist nützlich für den Fall, dass etwas schief geht und Sie eine Fehlerbehebung durchführen müssen.

log-error=/var/log/mysql.err

Wenn Sie mehr als 4 CPUs haben, können diese Variablen erhöht werden

Das hat nichts mit innodb zu tun.Es gibt andere Variablen, mit denen Sie spielen können und die nichts mit innodb zu tun haben.Ich habe sie unten hinzugefügt, aber sie wurden direkt von einem Server übernommen, den ich zum Testen verwende.Vermeiden Sie es, sie einfach zu kopieren und einzufügen.Das Lesen der MySQL-Dokumentation basierend auf der von Ihnen verwendeten Version ist der beste Weg, die richtigen Entscheidungen zu treffen.

# Fine Tunning
key_buffer              = 512M
max_allowed_packet      = 16M
thread_stack            = 128K
thread_cache_size       = 8
join_buffer_size        = 64M
sort_buffer_size        = 16M
myisam_max_sort_file_size = 1024M
tmp_table_size = 256M
max_heap_table_size = 257M
myisam_sort_buffer_size=1024M

table_cache            = 1000
thread_concurrency     = 8
# * Query Cache Configuration
#
query_cache_limit       = 16M
query_cache_size        = 16M


skip-name-resolve
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit dba.stackexchange
scroll top