Hardware & PC Forum | Forum | Hardware | Overclocking | Kaufberatung

Normale Version: Optimierung der MySQL-Server-Einstellungen, Server mit 32 GB Ram
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo, 

zusammen ich bin auf der Suche nach High Performance MYSQL Server Settings, kann mir dabei jemand helfen? Aktuell habe ich noch die Standard Settings von MYSQL 5.6.30 Community Edition. Gibt es irgendwo noch eine Erklärung zu den einzelnen Parametern? 

Vielen Dank!
Die Erklärung für ein paar Parameter, hoffe das hilft dir weiter:
  • ft_min_word_len = 3 - die Mindestlänge von Wörtern in der Volltextsuche Index indiziert werden. Wenn Sie diesen Wert ändern, müssen Sie die Volltextindizes neu zu erstellen.
  • user = mysql - mysqld als mysql Benutzerkonto auf dem Betriebssystem laufen
  • port = xxxx - Port, auf dem MySQL hört (Standard ist 3306)
  • default_storage_engine = InnoDB - als Standard-Engine beginnend mit MySQL 5.5. Sehen Sie hier die Vorteile von InnoDB mit
  • socket = /var/lib/mysql/mysql.sock - Die mysql.sock ist die Buchse, die mysqld für Programme zu verbinden schafft.
  • pid_file = /var/lib/mysql/mysql.pid - Ein Prozess-ID (pid) Datei ist, wo der Prozess-ID (pid) vom Server zugewiesen wird aufgezeichnet, wenn eine bestimmte Instanz von MySQL startet
  • datadir = / var / lib / mysql - Speicherort der Daten, beliebter Ort auf vielen Unix-Varianten
  • innodb_buffer_pool_size = 378m - die wichtigste Option für InnoDB-Leistung. InnoDB hält einen Speicherbereich der Pufferpool für die Zwischenspeicherung von Daten und Indizes im Speicher genannt. Der Standardwert (128M) ist ein wenig zu klein für meine Bedürfnisse. Idealerweise legen Sie die Größe des Pufferpools zu einer so großen Wert wie praktisch möglich, genügend Speicher für andere Prozesse auf dem Server verlassen, ohne übermäßige Auslagerung auszuführen. Je größer der Puffer-Pool wirkt das mehr InnoDB wie ein In-Memory-Datenbank, Daten von der Festplatte einmal liest und dann die Daten aus dem Speicher Zugriff während der nachfolgenden liest. Die Pufferpool auch Caches Daten durch Einsatz und Aktualisierungsvorgänge geändert, so dass die Platte schreibt, zusammen für eine bessere Leistung gruppiert werden. Siehe auch innodb Pufferpoolgröße wählen
  • innodb_log_file_size = 64M - Die Größe in Bytes jeder Protokolldatei in einer Log-Gruppe. Die kombinierte Größe von Protokolldateien (innodb_log_file_size * innodb_log_files_in_group) kann einen Maximalwert nicht übersteigen, der etwas weniger als 512 GB ist. Ein Paar von 255 GB-Log-Dateien, zum Beispiel erlaubt es dir, die Grenze zu nähern, aber überschreiten sie nicht. Der Standardwert ist 48 MB. Annehmbar sind Werte zwischen 1 MB bis 1 / N-ten der Größe des Pufferpools, wobei N die Anzahl der Log-Dateien in der Gruppe ist. Je größer der Wert, desto weniger Checkpoint-Flushing wird im Pufferpool benötigt, spart Disk-I / O. Größere Log-Dateien auch Crash-Recovery langsamer machen, obwohl Verbesserungen Recovery-Performance in MySQL 5.5 und höher die Protokolldateigröße von einer Betrachtung weniger machen.
  • innodb_file_per_table = 1 - Wenn innodb_file_per_table deaktiviert ist (Standardeinstellung), erstellt InnoDB-Tabellen im Shared Tablespace. Wenn innodb_file_per_table aktiviert ist (= 1), erzeugt InnoDB jede neue Tabelle mit seiner eigenen .ibd Datei für Daten und Indizes zu speichern, anstatt in der gemeinsamen tablespace.Tablespace reduziert auch nie in der Größe, das gleiche wie wenn Sie diese deaktiviert hatte, aber Sie haben nun die Möglichkeit, die Tabelle neu zu erstellen. Folgen Sie Gründe für weitere Informationen zu verwenden innodb_file_per_table.
  • innodb_flush_method = O_DIRECT - bei der Einstellung des Betriebssystems Caching O_DIRECT umgangen werden wil. Dies stellt sicher, dass es keinen Overhead von Double-Buffering, da innodb_buffer_pool_size auch anständig wurde eingestellt
  • #MyISAM
  • key_buffer_size = 128M - Indexblöcke für MyISAM-Tabellen werden gepuffert und von allen Threads gemeinsam. key_buffer_size ist die Größe des Puffers für Indexblöcke verwendet. Der Schlüsselpuffer wird auch als Schlüssel-Cache bekannt. Die key_buffer_size ist wahrscheinlich der nützlichste einzelne Variable auf der MyISAM-Engine zu zwicken. Beachten Sie, dass MyISAM selbst nur Indizes zwischenspeichert, keine Daten. Also, wenn möglich, den Wert dieser Einstellung sollte die Größe aller Ihrer Indizes decken.
  • #LOGGING
  • log_error = /var/lib/mysql/mysql-error.log - Fehler und Startmeldungen auf diese Datei. Siehe auch "Das Fehlerprotokoll".
  • slow_query_log = 1 - ob das Log für langsame Abfragen aktiviert ist. Der Wert kann 0 (oder OFF) das Protokoll oder 1 (oder ON) zu deaktivieren, um das Protokoll zu aktivieren.
  • slow_query_log_file = /var/lib/mysql/mysql-slow.log - Name / Ziel der langsamen Abfrage Protokolldatei. Der Standardwert ist host_name-slow.log, aber der Anfangswert kann mit der --slow_query_log_file Option geändert werden.
  • tmp_table_size = 32M - die maximale Größe des internen In-Memory temporäre Tabellen. (Die tatsächliche Grenze wird als das Minimum von tmp_table_size und max_heap_table_size bestimmt.) Wenn ein In-Memory temporäre Tabelle den Grenzwert überschreitet, MySQL wandelt diese automatisch in eine On-Disk-MyISAM-Tabelle. Erhöhen Sie den Wert von tmp_table_size (und max_heap_table_size falls erforderlich), wenn Sie viele erweiterte GROUP BY-Abfragen zu tun, und Sie haben viel Speicher. Diese Variable gilt nicht für vom Benutzer erstellte MEMORY tables.You kann die Anzahl der internen On-Disk temporäre Tabellen auf die Gesamtzahl der internen temporären Tabellen, indem die Werte der Created_tmp_disk_tables und Created_tmp_tables Variablen erstellt erstellt vergleichen.
  • max_heap_table_size = 32M - diese Variable legt die maximale Größe, auf die vom Benutzer erstellten MEMORY-Tabellen erlaubt sind zu wachsen. Der Wert der Variablen wird verwendet, um MEMORY Tabelle MAX_ROWS Werte berechnen. Das Setzen dieser Variablen hat keine Auswirkung auf bereits vorhandene MEMORY Tabelle, es sei denn, der Tisch ist mit einer Anweisung wie CREATE TABLE oder verändert mit ALTER TABLE oder TRUNCATE TABLE neu erstellt werden. Ein Neustart des Servers setzt auch die maximale Größe der vorhandenen Speichertabellen auf den globalen max_heap_table_size Wert. Diese Variable wird auch in Verbindung mit tmp_table_size verwendet, um die Größe des internen in-Speichertabellen zu begrenzen.
  • query_cache_type = 0 - den Abfrage-Cache-Typ festgelegt. Ein Wert von 0 oder OFF bedeutet nicht Cache-Ergebnisse oder Ergebnisse aus der Abfrage-Cache abgerufen werden. Beachten Sie, dass dies nicht den Abfrage-Cache-Puffer nicht freigeben. Um das zu tun, sollten Sie query_cache_size auf 0 gesetzt.
  • query_cache_size = 00 - die Größe des Speichers für das Caching von Abfrageergebnissen zugeordnet. Standardmäßig wird die Abfrage-Cache deaktiviert. Ich ziehe es tun Caching auf der Anwendungsebene mit ehcache - dies wird in einem zukünftigen Post erklärt werden
  • max_connections = 377 - die maximal zulässige Anzahl gleichzeitiger Clientverbindungen. Wenn Sie ein Zu viele Verbindungen Fehler, wenn Sie versuchen, den mysqld-Server zu verbinden, bedeutet dies, dass alle verfügbaren Verbindungen von anderen Clients im Einsatz sind.
  • thread_cache_size = 54 - wie viele Threads der Server für die Wiederverwendung zwischenspeichern soll. Wenn ein Client die Verbindung trennt, sind die Client-Threads in den Cache legen, wenn es weniger als es thread_cache_size Threads. Anträge auf Fäden werden erfüllt durch Fäden genommen aus dem Cache, wenn möglich, die Wiederverwendung, und nur dann, wenn der Cache leer ist, ist ein neuer Thread erstellt. Diese Variable kann erhöht werden, die Leistung zu verbessern, wenn Sie viele neue Verbindungen. Normalerweise ist dies nicht eine bemerkenswerte Leistungssteigerung bieten, wenn Sie einen guten Thread-Implementierung haben. Allerdings, wenn Ihr Server Hunderte von Verbindungen pro Sekunde sieht, sollten Sie normalerweise thread_cache_size hoch genug eingestellt, so dass die meisten neuen Verbindungen gecached Threads verwenden. Durch die Untersuchung der Differenz zwischen den Verbindungen (SHOW GLOBAL STATUS LIKE 'Connections'Wink und Threads_created (SHOW GLOBAL STATUS LIKE 'Threads_created'Wink Statusvariablen können Sie sehen, wie effizient der Thread-Cache ist.
  • table_open_cache = 600 - Die Anzahl offener Tabellen für alle Threads. Eine Erhöhung dieses Wertes erhöht die Anzahl von Datei-Deskriptoren, die mysqld benötigt. Sie können überprüfen, ob Sie den Tabellen-Cache vergrößern müssen von der Opened_tables Überprüfung (SHOW GLOBAL STATUS LIKE 'Open_tables'Wink Statusvariable.

Um zu überprüfen, ob die Variable gesetzt wurde korrekt "show Variable wie 'Variablenname '" laufen (zum Beispiel zeigen Variablen wie "max_connections ') in der MySQL-Konsole.
wow danke, dass muss ich mir erstmal in ruhe genauer anschauen. Eine Beispiel Konfiguration für einen 32 GB Server hättest du jetzt nicht zufällig im Angebot?