MySQL- und Multi-Core-Prozessoren

8

Ich verwende MySQL auf dem Win2008-Server auf einem Multi-Core-XEON-Prozessor. Es sieht so aus, als würde nur ein einziger Kern verwendet.

Muss ich etwas konfigurieren, damit alle Kerne verwendet werden?

Der Server unterstützt eine geladene Website mit vielen Anrufen. Ich bin sicher, dass es mehr als einen einzelnen Aufruf gleichzeitig gibt, aber die DB scheint alles in einem einzelnen Kern zu verarbeiten.

Was kann ich tun, um es zu verbessern?

Dani
quelle
Haben Sie die Affinitätseinstellungen des Prozesses im Task-Manager überprüft?
gekkz
Welche Version von MySQL verwenden Sie?
RolandoMySQLDBA
MySQL 5.0 und 5.1 sind Multithread-fähig , aber ich habe auch festgestellt, dass einige Funktionen (wie die Replikation) 100% einer CPU auf einem Multiprozessor- / Multicore-Computer verwenden, während die anderen Kerne im Leerlauf sind.
Stefan Lasiewski

Antworten:

7

Wenn Sie MySQL so einstellen möchten, dass mehrere Kerne verwendet werden, müssen Sie ein Upgrade auf MySQL 5.5 durchführen.

Laut MySQLs Whitepaper "Was ist neu in MySQL 5.5 Leistung und Skalierbarkeit" vom Dezember 2010:

Steuerung von Hintergrund-E / A-Threads - Benutzer haben jetzt zwei neue Konfigurationsparameter für alle Plattformen, innodb_read_io_threads und innodb_write_io_threads, mit denen die Anzahl der Hintergrund-Threads festgelegt werden kann, die für Lese- und Schreibanforderungen verwendet werden. Auf diese Weise können Benutzer ihre MySQL-Anwendungen auf High-End-Mehrkernsystemen optimieren und skalieren. 􀁸 Steuerung der Master-Thread-E / A-Rate - Benutzer können jetzt die gesamte E / A-Kapazität konfigurieren

Die genannten Parameter sind innodb_read_io_threads und innodb_write_io_threads .

Diese Einstellungen sind vor MySQL 5.1.38 nicht vorhanden. Tatsächlich erlaubt nur das MySQL-Plugin diese Einstellungen in MySQL 5.1. Es ist in der nativen InnoDB von MySQL 5.5 enthalten.

Vielleicht gibt Ihnen dieser Blog-Beitrag mehr Einblick in die InnoDB-Skalierbarkeit für mehrere Core-Server .

RolandoMySQLDBA
quelle
Es ist 5.5, ich werde diese Parameter überprüfen und genehmigen.
Dani