it-swarm.com.de

Fehler beim Herstellen der Datenbankverbindung - hoher Datenverkehr?

Ich habe eine WordPress 3.5.1-Site, die ein wenig Verkehr hat (80 gleichzeitige Besucher, ~ 5 Klicks/Seitenaufrufe pro Sekunde). Die Site läuft einwandfrei, bis sie ~ 85 Besucher erreicht. In der Regel sind 4 Administratoren gleichzeitig angemeldet. Die Website verfügt über 8 benutzerdefinierte Beitragstypen: Beiträge mit 3500 Beiträgen und Pressemitteilungen (ein benutzerdefinierter Beitragstyp) mit 13000 Beiträgen. All dies ist auf der Website paginiert, sodass auf keiner Seite mehr als 20 Beiträge angezeigt werden.

Die einzigen Plugins, die ich verwende, sind wp-pagenavi und w3totalcache.

Ich habe WP_DEBUG_LOG auf true gesetzt und die Fehler protokolliert. Der Hauptfehler, den ich bekomme (abgesehen von verschiedenen Hinweisen und Warnungen, die nichts mit diesem Problem zu tun haben), ist, dass mysql das Limit von max_user_connections erreicht hat.

Meine aktuellen max_user_connections sind auf 75 eingestellt. Ich habe versucht, sie höher einzustellen, aber die CPU kann die Last nicht bewältigen (4 Quad-Core-CPUs mit jeweils 2,17 GHz und 4 GB RAM).

Was könnte so viele Verbindungen verursachen?

Ich habe die Mysql-Prozesse gesehen, die ausgeführt wurden, als die Fehler auftraten, und es gibt viele Verbindungen, die "SLEEPING" oder "SLEEP" sagen (wahrscheinlich 15-20). Ich habe auch über die Prozessprotokolle bemerkt, dass httpd während der Stoßzeiten des Datenverkehrs ziemlich oft neu gestartet wird.

Irgendwelche Ideen zur Behebung des Problems?

HINWEIS: Bitte antworten Sie nicht, wenn Ihre Antwort darin besteht, meine wp-config.php-Datei zu überprüfen und sicherzustellen, dass mein Benutzername, mein Passwort und mein Host korrekt sind. Dies ist NICHT das Problem. Die Seite funktioniert unter normalen Verkehrsbedingungen.

1
codescribblr

Ich bin auf die gleiche Art von Problem gestoßen, da Sie bereits festgestellt haben, dass das Problem darauf zurückzuführen ist, dass mysql nicht zu viele Verbindungen akzeptiert. Als Lösung haben wir das ordnungsgemäße Caching angewendet (überprüfen Sie, wie oft der Cache ungültig ist und andere Cache-Einstellungen). und aktualisieren Sie den MySQL-Server.

Als schnelle Lösung können Sie die Verbindungen in MySQL mit flush hosts leeren;

1
asunchu

Wenn Sie w3tc bereits installiert haben, empfehle ich dringend, dass Sie versuchen, die Einstellungen zu optimieren.

Verwenden Sie das Seiten-Caching über Memcache und ein CDN für statische Assets. Dies bedeutet eine Leistungssteigerung von ca. 95% für nicht angemeldete Benutzer auf jeder Seite, die ich verwendet habe.

Page-Caching, Datenbank-Caching und Objekt-Caching sind besonders nützlich, um den Datenbankserver zu belasten.

Wenn Sie noch keinen Remote-Proxy vor Ihrem Webserver verwenden, empfehle ich Ihnen dringend, einen Blick auf lack zu werfen.

0
s1lv3r