Fragen? Antworten! Siehe auch: Alternativlos
Die benutzen im Backend Node.JS.
Gut, da könnte man eigentlich schon mit dem Lesen aufhören, aber wartet, das war noch nicht die Punchline!
We were running 4,000 Node containers (or "workers") for our bank integration service. The service was originally designed such that each worker would process only a single request at a time. This design lessened the impact of integrations that accidentally blocked the event loop, and allowed us to ignore the variability in resource usage across different integrations.
Das war die Punchline. Sie fahren Node, was man aus genau einem Grund einsetzt, nämlich weil es in JS mehrere Requests parallel bearbeiten kann, mit einer Event Loop, was mal als besonders effizient galt. Das wird halt zu einem Problem, wenn der Entwickler zu blöde ist, seine Reaktion auf ein Event dann nicht schnell und non-blocking hinzukriegen. Lustigerweise halten sich alle Leute, die Node einsetzen, erstmal für kompetent genug, dass SO ein Anfängerfehler nur DEN ANDEREN passieren würde, doch nicht mir! Ich bin doch der Größte!1!!Jedenfalls ist denen offensichtlich genau das passiert. Und ihre Antwort war: Wir machen einfach 4000 Instanzen von Node in jeweils einer eigenen VM auf.
Die Schlaueren unter euch werde sich jetzt fragen: Was ist denn, wenn mehr als 4000 Requests zur Zeit reinkommen?
Ja, äh, guter Punkt!
But since our total capacity was capped at 4,000 concurrent requests, the system did not gracefully scale.
No shit, Sherlock!Der ganze Artikel ist ein einziger Brüller. Hier ist noch eine gute Stelle:
We hypothesized that increasing the Node maximum heap size from the default 1.7GB may help. To solve this problem, we started running Node with the max heap size set to 6GB (--max-old-space-size=6144 command-line flag), which was an arbitrary higher value that still fit within our EC2 instances. To our delight, this fixed the "allocation failed" messages in production.
Die experimentelle Verifikation des "eine Million Affen"-Gedankenexperiments!So und jetzt die geistige Transferleistung: Wenn dieser Anbieter so gruselig ist, was glaubt ihr, wie die anderen Anbieter in dem Umfeld aussehen?
Richtig! Genau so!