Hohe Serverbelastung durch mysql

9

Wir betreiben einen VPS und erleben eine hohe Belastung durch den mysql Server. Derzeit können wir die Ursache für dieses Problem nicht finden und deshalb hoffe ich, dass jemand mich in die richtige Richtung weisen kann.

Das VPS verfügt über 4 CPUs und 4 GB RAM (18/11 EDIT: jetzt 8 GB). Festplatteninformationen sind nicht verfügbar, aber ich glaube, sie sind nicht die schnellsten. Auf diesem VPS laufen 1 Magento CE 1.7.0.2 Installation mit 20 Webshops und 8 Wordpress Installationen (verbunden mit dem Magento System). Wir haben einige benutzerdefinierte Erweiterungen im Magento-System installiert. Wir verwenden Ubuntu 13.04 mit Nginx 1.2.6, mysql 5.5.34, PHP 5.4.9, larlackd 3.0.4 und verwenden APC als Opcode-Cacher.

Beim Ausführen von top:

%Vor%

Unsere my.cnf-Datei hat die folgenden Werte:

%Vor%

Unsere Ausgabe von mysqltuner.pl:

%Vor%

Wir haben mysql länger als 24 Stunden laufen lassen und die meisten Einstellungen nach mysqltuner und tuning-primer optimiert. Verwendete Reparatur- und Optimierungsfunktionen zur Optimierung aller Datenbanken.

Leider wechselt mysql auf die Platte und ich denke daher die hohe CPU Belastung.

Ich hoffe, dass jemand mich in die richtige Richtung weisen kann, um die Ursache für den Austausch / die hohe Belastung zu finden. Wir haben keine langsame Protokollabfragen (nur beim Neuindizieren von Magento).

Wenn jemand weitere Informationen benötigt, fragen Sie mich bitte.

[LÖSUNG]:

Im Grunde genommen haben wir dieses Problem gelöst, indem wir persistente Verbindungen in php.ini ausgeschaltet haben: mysql.allow_persistent = Aus Wir haben einen Rückgang der CPU-Auslastung von MySQL festgestellt. Tuning-Prmier beschwert sich nicht mehr über unsere Anwendungen, die ihre Verbindungen nicht schließen. Wir müssen einige Verbesserungen vornehmen, da nicht alle unsere Abfragen Indizes korrekt verwenden, aber vorläufig hilft uns dieser Fix, unseren Server aufrecht zu erhalten.

Mit freundlichen Grüßen, Sander.

    
Sander 15.11.2013, 13:27
quelle

3 Antworten

1

Ich habe festgestellt, dass die Serverleistung durch verschiedene Dinge "verbessert" werden kann, einige davon sind:

  1. Finden Sie heraus, wie viel Arbeitsspeicher Sie benötigen, um MySQL durch all Ihre Daten gehen zu lassen, aber auch eine Menge ausgeführter SQL-Abfragen. Sie können alle Speicher bezogene Sachen hier und verstehen, wie es funktioniert . Danach können Sie Unterstützung für große Seiten aktivieren

  2. Ich habe festgestellt, dass Sie die Leistung verbessern können, indem Sie APC , wo Sie tatsächlich sehen können, wie es Ihre Leistung verbessert. Werfen Sie auch einen Blick auf this .

  3. Verwenden Sie Lack , aber das ist eine lange Geschichte, um hier zu tippen. Es kommt darauf an, dass Sie eine sehr gute Konfiguration benötigen, damit es perfekt funktioniert.

  4. Wenn Sie immer noch Probleme haben, versuchen Sie, Xdebug zu verwenden, um herauszufinden, was Sie jeweils aushält verarbeiten. Sie könnten das letzte von Anfang an tun, da Ihr MySQL versucht, alles auszuführen, was Sie von ihm verlangen, aber 1 Prozess nach dem anderen. Daher speichert es jeden Prozess, den es nicht im Speicher ausführen kann und wenn dies geschieht, wird es Ihren Speicher überlaufen.

Meine Schlussfolgerung war, dass, je mehr php / mysql verwandte Sachen (was Ihr Server braucht Zeit / Ressourcen für), die Sie wiederverwenden können, indem Sie es von Ihrem Bargeld (Varnish, APC, MySQL mem) bekommen, desto mehr Verbindungen es kann ohne eine hohe Serverlast erstellen.

    
gelleby 15.11.2013 14:13
quelle
0

Haben Sie Ihren verfügbaren Speicherplatz überprüft? Wir hatten einige Probleme wegen der riesigen log txt-Dateien, die Magento erstellt. Überprüfen Sie für Ihre Magento-Sites, dass sie den Log-Fehler von Developer- & gt; Log-Einstellungen deaktiviert haben. Es gibt keine Begrenzung, wie groß diese Dateien sein können! Zumindest weiß ich das. Hoffe das hilft dir. Prost!

    
vbak 15.11.2013 13:51
quelle
0

Sander,

Ich bin mir nicht sicher über die Dinge auf dem Server, obwohl die Arbeit in Magento etwas Nützliches gefunden hat, das Sie vielleicht untersuchen möchten.

Einige Hosting-Unternehmen bieten hochwertige Magento-Hosting-Lösungen mit optimierten Servern, um die beste Magento-Leistung sicherzustellen. Hier sind einige Beispiele, die Sie in Betracht ziehen könnten:

  • SimpleHelix
  • Nexcess
  • Peer1Hosting
  • Zerolag

Auch wenn ich über das Clustering von Magento mit großem Daten- und Kundenzugriff (große db-Transaktionen) gelesen habe, was auf der Web-, Datenbank- und Dateisystemebene geschieht.

Hier ist eine Anleitung dazu:

Ссылка

Auch einige einfache, aber nützliche Tipps sind:

  • Aktivieren Sie js, css file merging
  • Deaktivieren Sie das Protokoll
  • Aktivieren Sie die Kompilierung
  • Legen Sie einen Indexer cron fest

Ich glaube, dass es auch für Wordpress dieselben Dinge geben muss.

Hoffnung oben kann ein bisschen helfen, wenn nicht vollständig.

    
Sunil Verma 15.11.2013 13:44
quelle

Tags und Links