Heroku: web-dyno vs. worker dyno? Wie viele/welche Verhältnis brauche ich?
War ich neugierig, was der Unterschied zwischen web-und worker-dynos ist auf Heroku. Geben Sie eine ein-Satz-Erklärung auf deren Seite Preise, aber diese gerade verlassen mich verwirrt. Wie weiß ich, wie viel zu Holen jeder? Gibt es ein Verhältnis sollte ich anstreben? Ich bin ziemlich neu auf dieses Zeug, also kann jemand in eine Tiefe Erklärung, oder vielleicht irgendeine Art von Weg, ich kann berechnen, wie viele und welche Art von dynos, die ich brauchen würde?
Außerdem bin ich verwirrt über das, was Sie bedeuten, indem Sie die Anzahl der Stunden für jede dyno.
Ich auch zufällig auf diese Artikel. Als einer von Ihnen vorgeschlagenen Lösungen, sagte Sie zu erhöhen die Menge des dynos. Welche Art von dyno verweist Sie hier?
http://devcenter.heroku.com/articles/backlog-too-deep
InformationsquelleAutor der Frage varatis | 2011-12-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre beste Hinweis, wenn Sie brauchen mehr dynos (aka Prozesse auf Cedar) ist Ihre heroku logs. Stellen Sie sicher, dass Sie ein upgrade auf erweiterte Protokollierung (es ist kostenlos), so dass Sie Schwanz Ihr melden.
Du suchst die heroku.router-Einträge, und der Wert, den Sie am meisten interessiert sind, ist die Warteschlange Wert - wenn Sie ständig mehr als 0 ist, dann ist es ein gutes Zeichen, die Sie benötigen, um mehr hinzuzufügen dynos. Im wesentlichen bedeutet dies, als gibt es mehr Anfragen, als Ihr Prozess verarbeiten kann, so werden Sie in die Warteschlange eingereiht. Wenn Sie in der Warteschlange zu lang ohne wieder alle Daten, die Sie wird eine Zeitüberschreitung.
Es gibt keine ideale Verhältnis fürchte ich, Sie könnte eine app haben, tun 100 Anfragen pro Sekunde müssen viele web-Prozesse aber einfach nicht Gebrauch machen von Arbeitnehmern. Sie müssen nur die Arbeitsprozesse, wenn Sie tun, die Verarbeitung in den hintergrund wie das versenden von E-Mails etc. etc.
ps-Rückstand zu tief wäre ein Dyno web-Prozess führen würden.
UPDATE: Am 26. März 2013 Heroku entfernt Warteschlange und warten Sie Felder aus der log-out stellen.
InformationsquelleAutor der Antwort John Beynon
Dynos sind im Grunde Prozesse, die ausgeführt werden auf Ihre Instanz. Mit der neuen Cedar-stack, die Sie eingestellt werden können, zum ausführen von beliebigen shell-Befehl. Für web-Anwendungen, haben Sie in der Regel ein Prozess namens "web", die verantwortlich für die Beantwortung von HTTP-Anforderungen von Benutzern. Alle anderen Prozesse sind, was vorher als "Arbeiter." Diese laufen kontinuierlich im hintergrund für Dinge wie cron, Verarbeitung, Warteschlangen und jede Berechnung, die Sie nicht wollen, zu binden, Ihre web-Prozesse. Sie können auch Maßstab jeder Art von Prozess, so dass mehrere Prozesse, die von jeder Art wird hochgefahren werden weitere Parallelität. Die Höhe der einzelnen, die Sie verwenden hängt wirklich von den Anforderungen der Anwendung und die Last, die er erhält. Sie können Werkzeuge wie das Neue Relikt-plugin zu überwachen, diese Dinge. Werfen Sie einen Blick auf die Artikel, die auf dem Prozess-Modell und das Procfile in Heroku ' s dev-center für weitere details.
InformationsquelleAutor der Antwort Jimmy Cuadra
Einige Leute haben erwähnt, dass es keine bekannten Verhältnis und das Verhältnis von web-worker, um die 'hintergrund' - Arbeiter, die Sie wollen, ist davon abhängig, wie Sie für Ihre Anwendung - das ist richtig. Aber ich dachte, es könnte hilfreich sein, hinzufügen, dass als Faustregel gilt, dass Sie möchten, dass Ihre web-worker - und damit die controller-Aktionen dienen Sie - blitzschnellen und sehr leicht, zu reduzieren die Latenz in der Reaktionszeit von browser-Aktionen. Wenn es eine browser-Aktion, die würde erfordern mehr als, sagen wir, ungefähr eine halbe Sekunde der realen Zeit zu dienen, dann werden Sie wahrscheinlich wollen die Architekten eine Art von system drückt, dass der Großteil dieser Maßnahmen auf eine Warteschlange.
Würden Sie dann entwerfen Sie eine offline-worker dyno(s) , wird mit dieser Warteschlange. Sie können sehr viel länger dauern, denn es sind keine HTTP-Antworten, während auf Ihren Ausgang. Vielleicht ist die Seite, die Sie gerendert, die von der ersten browser-Anforderung, stieß die Aktion wird dazu dienen, einige Javascript, dass einen thread gestartet, der prüft, um zu sehen, wenn die Anfrage abgeschlossen hat, die alle 5 Sekunden, oder etwas entlang jenen Linien.
Ich kann immer noch nicht geben Ihnen ein Verhältnis, mit zu arbeiten für den gleichen Grund, warum andere gegeben haben, aber ich hoffe, dies hilft Ihnen, zu entscheiden, wie Sie die Architektur Ihrer app. (Ich sollte auch erwähnen, das ist nur ein design von vielen gültig.)
InformationsquelleAutor der Antwort eblume
https://stackoverflow.com/a/19965981/1233555 - Heroku hat gegangen, um ein random routing, so dass einige dynos können Warteschlangen, stapeln sich (während Sie dienen einer langen Anfrage), während alle anderen dynos sind kostenlos. Vermeiden Sie dies, indem Sie sicher, dass alle Anfragen sind in der Regel sehr schnell in Ihren web-dynos. Dies reduziert die Anzahl der web-dynos, die Sie brauchen, während die, die mehr worker-dynos.
Müssen Sie auch kümmern uns um Ihre web-app-Unterstützung von Parallelität, die nur einige Schienen configs zu tun - versuchen, Einhorn -, oder in sorgfältig geschriebenen code (für I/O, die nicht blockiert die EventMachine) mit Dünnen.
Werden Sie wahrscheinlich haben, um zu versuchen, anstatt zu berechnen, um zu sehen, wie viele dynos jeder Art, die Sie benötigen. Stellen Sie sicher, dass Ihre Neue Reliquie, berichtet der dyno-queue - siehe den obigen link.
InformationsquelleAutor der Antwort ChrisPhoenix
Kurze Antwort ist, dass müssen Sie so viele wie Sie benötigen, um Ihre Warteschlangen nach unten.
Als Johannes beschreibt, wenn Sie anfangen, sehen eine Warteschlange in deine logs, dann müssen Sie mehr dynos. Wenn Sie sehen, beginnen Sie, Ihren hintergrund, Warteschlangen immer zu lang (wie bekommst du diese info ist abhängig von dem, was Sie umgesetzt haben), dann müssen Sie mehr Arbeitskräfte.
Gibt es kein Verhältnis, da es sehr viel abhängig von Ihrer Anwendung, Gestaltung und Nutzung.
InformationsquelleAutor der Antwort Neil Middleton