2015-02-02 13 views

Antwort

8

Keine einfache Antwort.

Die beiden wichtigsten Informationsquellen sind:

  1. Puma github repository (der Sicht der Autoren)
  2. Heroku's web page (Hauptpunkt der großen Benutzer-Sicht)

Leider inkonsistent sie sind vor allem, weil heroku verschiedene Deployment-Metriken und -Terminologie hat.

So landete ich im Anschluss an die Puma-Repository-Richtlinien bis die sagt:

  • Ein Arbeiter pro Kern
  • Themen im Zusammenhang mit RAM Verfügbarkeit und Anwendung und
  • Themen = Connection Pool bestimmt werden

Also die Anzahl der Threads ist meist ein Versuch und überprüfen Sie die Operation.

+2

Die Richtlinie "Ein Arbeiter pro Kern" wird viel herumgeworfen, aber es ist im Grunde das Gegenteil von dem, was Heroku sagt (sie geben RAM als einzigen limitierenden Faktor für Arbeiter an und schlagen vor, dass Threads an verfügbaren Prozessor gebunden sein sollten). Hat jemand das letzte Wort dazu schon gegeben? Herokus Version macht für mich mehr Sinn, intuitiv. – robomc

+2

Wie ich es verstehe, ist der wahre Vorteil der Arbeiter mit Puma Parallelität, da sie separate Ruby-Prozesse sind. Wenn Sie nur einen Kern haben, gibt es wirklich keinen Grund, mehr als einen Arbeiter zu verwenden, da sie nicht parallel laufen können. Dennoch könnte Heroku einige andere Effizienzverbesserungen bei der Verwendung mehrerer Worker selbst in einer einzelnen Kernumgebung entdeckt haben. –

+0

Sie haben vollkommen Recht, und ich habe es als Teil der Richtlinien gesetzt: Ein Arbeiter pro Kern;) – tommasop

Verwandte Themen