In den letzten Monaten hatte meine Website (auf Rails 4 mit Heroku) keine Probleme. Der Verkehr war stabil und Reaktionszeiten unter 500 ms.Verstehen, warum meine Rails 4 App nach dem Zufallsprinzip läuft
Nach dem Zufallsprinzip heute, Reaktionszeiten bis zu 20.000 ms +.
Wenn in meinen Logs suchen, bemerkte ich Active ungewöhnlich lange dauert ein SELECT DISTINCT COUNT
zu laufen. Dies schien in der Tat die langsamen Lasten zu verursachen.
(5029.1ms) SELECT DISTINCT COUNT(DISTINCT "impressions"."session_hash") FROM "impressions" WHERE "impressions"."impressionable_id" = $1 AND "impressions"."impressionable_type" = $2 [["impressionable_id", 826], ["impressionable_type", "Article"]]
Ich möchte, dies sagen ist durch die impressionistische Edelstein- und meinen Gegen Cache verursacht wird, dass ich Artikel Zählung anzuzeigen bin, aber ich bin nicht sicher.
ich jetzt bin auch diesen Fehler in meinem Logs zum ersten Mal zu sehen:
PG::DuplicatePstatement: ERROR: prepared statement "a9" already exists
Jede Hilfe zu verstehen, was fantastisch wäre passiert. Ich kann keine Dokumentation zu diesem Problem finden. Sehr merkwürdig, dass meine App seit Monaten solide läuft und gerade heute beschließt sie, bergab zu gehen.
Ich verwende auch das Rack Timeout-Juwel mit Heroku. Ich habe gehört, dass dieser Edelstein direkt oder indirekt den oben genannten Fehler verursachen kann, aber ich kann nur meinen Kopf darum drehen, warum das alles passiert. Lassen Sie es mich wissen, wenn es weitere Informationen oder Messwerte gibt, die ich bereitstellen kann.
Eintages Später Update:
Ansprechzeiten normal ging zurück auf ihre eigenen (< 500 ms). Kann nicht herausfinden, warum so eine zufällige Spitze.
Und gerade als Referenz, wurde die obige SELECT DISTINCT COUNT
Abfrage von diesem Code in meinem Artikel anzeigen Seite ausgeführt wird, die einfach ist, die Eindrücke einzigartig für die Sitzung zu zählen:
<%= @article.impressionist_count(filter: :session_hash) %>
laufen zu lassen Verwenden Sie die kostenpflichtige Version von Heroku oder kostenlos? – CheeseFry
Bezahlt ... läuft auf einer Standard 2X Dyno und Hobby Basic DB (mit 10m Zeilen) @CheeseFry – Kathan
Können Sie den Ruby Code posten, der diese Abfrage generiert? – spickermann