2016-06-15 16 views
0

Ich habe eine (Nodejs 4.3) Lambda-Funktion, die ich mit mehreren Speicher-Limit-Einstellungen getestet habe (128, 256, 512).AWS Lambda Speicher vs Ausführungszeit

Wenn ich das Speicherlimit hochziehe, verringert sich die Ausführungszeit wie erwartet. Der maximal verwendete Speicher sinkt jedoch ebenfalls. Jedes Mal, wenn ich das Speicherlimit reduziere, gehen die Ausführungszeit und der maximal verwendete Speicher zurück.

Irgendwelche Gedanken? Ich versuche herauszufinden, wie ich die Ausführungszeit erreichen kann, die ich brauche, aber nicht überbezahlen.

Antwort

1

Dies ist die Node VM, die Speicher verwendet. Wenn es verfügbar ist, wird es es verwenden (und Sie könnten dieses Szenario möglicherweise lokal mit VMs oder Docker reproduzieren). Ich würde mir nicht zu viele Gedanken machen, und ich würde nicht empfehlen, die VM anzuweisen, was zu tun ist oder überhaupt über die Garbage-Collection nachzudenken (was ohnehin nicht einfach ist mit Node.js). Knoten ist sehr opportunistisch über Speicher ist alles, was ich sagen kann. Ich würde den Betrag auswählen, den Sie benötigen, um eine angemessene Reaktionszeit zu erhalten und es dabei belassen.

Ich würde auch wahrscheinlich vorstellen, dass auf "warmen" Läufen Ihre Geschwindigkeit erhöht wird, wenn Sie eine geringere Menge an Speicher haben, aber eine "kalte" Lauf wird höher sein. In der Produktion ist es vielleicht nicht so wichtig.

Vielleicht möchten Sie mit der Profilerstellung Ihres Codes beginnen und versuchen, ihn zu optimieren ... Aber wiederum möchte Node nicht wirklich, dass der Entwickler sich Gedanken um die Ressourcen auf einem Computer macht. Es versucht, für Sie zu optimieren. Es ist ein bisschen unglücklich, wenn Sie auf diese Weise berechnet werden. Dies ist ein Teil von warum ich wünschte, dass Go von Lambda unterstützt wurde.