Sollte ich preload_app mit Puma auf Heroku verwenden?

8

Ich betreibe mit einem Prüfstand und mehreren Puma-Mitarbeitern eine kleine Rails-App auf Heroku.

Die Puma-Dokumentation sagt:

  

Generell gilt preload_app, wenn Ihre Mitarbeiter oft sterben und   brauche schnelle Starts. Wenn Sie nicht viele Arbeiter haben, sollten Sie wahrscheinlich   Verwenden Sie preload_app nicht.

Dies deutet darauf hin, dass ich preload_app! nicht in meinem config/puma.rb verwenden sollte. Ich habe jedoch ein paar unbeantwortete Fragen:

  • Wann sterben meine Arbeiter? Werden sie nach einer bestimmten Anzahl von Anfragen geerntet und re-forked? Wie kann ich das überwachen?
  • Woher weiß ich, ob meine Mitarbeiter schnelle Starts brauchen?

Es ist klar, dass preload_app! Ressourcen sparen sollte, wenn Sie viele Arbeiter verwenden, aber ich sehe nicht den Nachteil, dass Sie es auch mit einer kleinen Anzahl von Arbeitern verwenden.

Herokus empfohlene Konfiguration für "a simple Rails-Anwendung "enthält preload_app! , aber sie bieten keine Anleitung, wenn sie nicht verwendet werden sollen.

Wann sollte preload_app! nicht verwendet werden und warum? (Ignorieren des gestuften Neustartproblems.)

    
Max Wallace 03.12.2015, 12:24
quelle

1 Antwort

0

Neben dem schnellen Starten von Worker spart preload_app! dank der Funktion Kopieren bei Schreiben auch Speicher Ruby 2.0.

Sie können diese großartige Beschreibung von Heroku lesen, die die Idee des Copy-on-Write in Ruby einführt:

>
  

Copy on Write oder COW ist eine Optimierung, die den Speicherbedarf eines Ruby-Prozesses beim Kopieren reduzieren kann. Anstatt doppelten Speicher zuzuweisen, wenn ein Prozess verzweigt wird, ermöglicht COW mehreren Prozessen, denselben Speicher zu teilen, bis einer der Prozesse eine Information ändern muss.

Also, egal wie viele Werke Sie haben, es wird immer empfohlen, preload_app! wenn möglich zu aktivieren.

    
dlackty 04.04.2017 15:01
quelle

Tags und Links