Leistungsoptimierung des WAMP-Servers für MySQL

7

Wir haben eine Drupal-Site mit fast 2000 Seiten, die auf dem WAMP-Server ausgeführt werden . Die Seiten enthalten auch Bilder und darin eingebettete Flash-Videos. Das Laden unter normalen Einstellungen dauert also einige Zeit.

Es wird erwartet, dass fast 200 bis 300 Benutzer das System gleichzeitig verwenden (die Anzahl wird voraussichtlich später steigen).

Der Dev-Server (in unserem Firmen-Intranet) verfügt über 16 GB RAM und läuft unter Windows7 - 64-Bit-Betriebssystem. Ich kann sehen, dass in wamp/bin/mysql/mysql5.5.16/Dateien hat

  1. my.ini
  2. my-huge.ini
  3. my-innodb-heavy-4G.ini

Ich habe mir beide angesehen und bin mir nicht sicher, was der Zweck eines jeden von ihnen ist und welcher von meinem WAMP-Server derzeit verwendet wird. Außerdem musste ich den Unterschied bei der Verwendung von my-huge.iniund kennen my-innodb-heavy-4G.ini. Ich habe auch Apache SOLR für die Indizierung der Suche konfiguriert (ich weiß nicht, ob dies relevant ist).

PS: Drupal speichert Seiten (zusammen mit dem Link zu Bildern und Videos) in der Datenbank und Bilder und andere Medien werden in einem Ordner unter dem Site-Stammverzeichnis gespeichert.

Ajit S.
quelle
Ich denke, dass Sie die Medien auf Festplatten speichern und mit ihnen verknüpfen können.
Jasper Ma
Könnten Sie genauer sein?
Ajit S
Siehe auch diese Antwort: serverfault.com/questions/321805/…
T.Todua

Antworten:

6

Die Unterschiede hängen mit der erwarteten Kapazität zusammen, die mysqld verarbeiten soll

my_huge.ini

  • hat keine max_connections gesetzt
  • hat innodb Einstellungen auskommentiert
  • voreingestellte Werte
    • sort_buffer_size = 2M
    • read_buffer_size = 2M
    • read_rnd_buffer_size = 8M
    • myisam_sort_buffer_size = 64M

my-innodb-heavy-4G.ini

  • hat max_connections auf 100 gesetzt
  • hat innodb Einstellungen aktiviert
  • voreingestellte Werte
    • max_allowed_packet = 16M
    • binlog_cache_size = 1M
    • max_heap_table_size = 64M
    • read_buffer_size = 2M
    • read_rnd_buffer_size = 16M
    • sort_buffer_size = 8M
    • join_buffer_size = 8M
    • thread_cache_size = 8
    • thread_concurrency = 8
    • query_cache_size = 64M
    • query_cache_limit = 2M

Standardwerte werden verwendet, wenn nichts angegeben ist. Unabhängig davon, welche Sie verwenden möchten, müssen Sie sie über my.ini kopieren und mysqld neu starten, damit sie wirksam wird.

  • Wenn Sie my-vast.ini verwenden, müssen Sie mysqld herunterfahren, my-innodb-heavy-4G.ini in my.ini kopieren und dann mysqld starten.
  • Wenn Sie my-innodb-heavy-4G.ini verwenden, müssen Sie mysqld herunterfahren, die innodb-Protokolldateien (ib_logfile0, ib_logfile1) löschen, my-innodb-heavy-4G.ini in my.ini kopieren und dann mysqld starten.

Da Sie sagten, dass die Anzahl der DB-Verbindungen voraussichtlich zunehmen wird, müssen Sie max_connections auf höhere Werte erhöhen , aber die RAM-Nutzung ausgleichen. Der beste Weg, dies auszugleichen, besteht darin, ein Diagnoseprogramm wie mysqltuner.pl auszuführen und Empfehlungen zum Anpassen der Einstellungen pro Verbindung und pro Instanz zu erhalten.

Da Sie MySQL in einer WAMP-Umgebung ausführen, würde ich 25% des Arbeitsspeichers für den Gesamtspeicher nicht überschreiten, da Sie Windows, Apache und PHP (oder Perl oder Python) ihre fälligen RAM-Werte geben müssen. (Ich bin froh, dass Sie Apache und nicht IIS verwenden, sonst wäre dies eine WIMP-Umgebung !!!)

RolandoMySQLDBA
quelle
danke .. ich habe es mir angesehen. Dies lag daran, dass ich dafür verantwortlich bin, die Einstellungen für die gesamte Site (Entwicklung, Design, Datenbankeinstellungen usw.) zu optimieren, und dass es aufgrund des Entwicklungshintergrunds schwierig wird, die Minuteneinstellungen zu kennen. Ich werde die Frage auf dem Laufenden halten, und ich nehme an, das Kopfgeld geht automatisch an Sie (:
Ajit S
Sie müssen das Kopfgeld manuell vergeben. Sie können dies jetzt tun oder die 5 Tage warten und es dann vergeben. Wenn Sie nichts tun, würde ich am Ende der Nachfrist von 5 Tagen + 1 Tag nur die Hälfte erhalten.
RolandoMySQLDBA
@ RolandoMySQLDBA Ich werde es auf jeden Fall tun. Vielen Dank für Ihre Antwort ..
Ajit S