MySQL-Konfiguration, WordPress, hohe Belastungen

MySQL-Konfiguration, WordPress, hohe Belastungen

Meine Anfrage

./mysqlslap --user=root  --concurrency=50 --iterations=1 --pass=toor -vv --create-schema=db --query="SELECT SQL_CALC_FOUND_ROWS  wp_posts.* FROM wp_posts  INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) INNER JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id)  WHERE 1=1  AND wp_term_taxonomy.taxonomy = 'category'  AND wp_term_taxonomy.term_id IN ('1')  AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish') GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 35, 6"

Einige Ergebnisse

   Average number of seconds to run all queries: 68.904 seconds
    Minimum number of seconds to run all queries: 68.904 seconds
    Maximum number of seconds to run all queries: 68.904 seconds
    Number of clients running queries: 50
    Average number of queries per client: 1

Die durchschnittliche Auslastung erreicht Spitzenwerte über 32.

Die Spezifikationen der Testmaschine sind:

  • 4 GB RAM
  • E6550 @ 2,33 GHz (2 Kerne)
  • Einzelne SATA-Festplatte
  • Debian Lenny + Apache + PHP + MySQL

Die MySQL-Konfiguration kann gelesen werdenhier drüben. Hat jemand einen Rat, wie ich sie anpassen kann, um die Leistung zu verbessern? Danke.

Antwort1

  • Installieren Sie w3tc oder wp-super-cache
  • Reduzieren Sie die Anzahl der Beiträge/Tags (denken Sie daran, dass WordPress Revisionen von Beiträgen in der Tabelle „wp_posts“ speichert. Wenn also jemand gerne angemeldet bleibt und die automatische Speicherung alle 5 Minuten ausgeführt wird, können dort ziemlich viele überzählige Revisionen enthalten sein).
  • WordPress ersetzen
  • Holen Sie sich eine schnellere Festplatte

Obwohl ich mit einigen der einstellbaren Parameter in der Konfiguration aus Bauchgefühl nicht einverstanden bin,http://blog.mysqltuner.com/enthält ein Skript, das Sie ausführen können und das Ihnen Eingaben zu Ihren Konfigurationseinstellungen gibt. Sie sollten MySQL 48 Stunden oder länger laufen lassen, damit es die besten Empfehlungen gibt.

  • Tabellendefinitionscache
  • thread_concurrency (Auf einem Quadcore führe ich dies normalerweise mit 6 aus)
  • join_buffer_size (Sie haben es als join_buffer aufgelistet, was falsch sein kann. Sehen Sie sich „Status anzeigen/Variablen anzeigen“ an, um sicherzustellen, dass Ihre Konfigurationseinstellungen wie erwartet wirksam werden.)

Wenn Sie E-Mail nicht auf derselben Partition wie Ihre Datenbank ausführen, sollten Sie das Dateisystem mit noatime,nodiratime mounten. Überprüfen Sie andere anpassbare Einstellungen Ihres Dateisystems.

verwandte Informationen