Was ist die maximale Anzahl der virtuellen Prozessorkerne, die in AWS Lambda?
Ich versuche zu finden, die maximale Anzahl der virtuellen Prozessorkerne, die in AWS Lambda. Die offizielle Dokumentation impliziert, dass es skaliert mit der Menge der konfigurierten Speicher:
Jedoch, mit dem folgenden snippet wird mir Number of cores = 2
auch wenn ich bei der Konfiguration die höchste Menge an Speicher requestable: 1536 MB.
package example;
import java.io.{ InputStream, OutputStream }
class Main {
def main(input: InputStream, output: OutputStream): Unit = {
val result = "Number of cores = " + Runtime.getRuntime().availableProcessors()
output.write(result.getBytes("UTF-8"))
}
}
Also, was ist hier Los? Bin ich mit availableProcessors() falsch oder falsch interpretiert sein Ergebnis falsch? Oder gibt es andere Konfigurationen brauchen, um mehr Kerne?
- Sie kann auch falsch die faq... zu erinnern, dass alles virtualisiert, wird der Begriff "proportional CPU-Leistung" könnte auch beziehen sich auf den Anteil der verfügbaren CPU-Zyklen zugewiesen, um einen Auftrag durch den hypervisor (wenn Sie erlaubt sind, z.B., 25%, der hypervisor wird "stehlen", andere ~75%), eher als Skalierung der Anzahl der Kerne.
- Warum willst du mehr Kerne?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als pro AWS Lambda Dokumentation und forum, AWS nicht, die Instanz-Typen, die AWS nutzt für diesen service. In der Ende 2014 AWS verwendet compute-Optimierung-wie Instanzen. Und jetzt, AWS verwendet Allgemeine Zwecke-wie Instanzen.
Können Sie nur nutzen die CPU-Leistung proportional zu der Erinnerung. Obwohl, die untere und höhere Speicher, sind Sie in einer gleichen Instanz befinden, teilen sich proportional der CPU-Leistung, die die höhere Speicher erhalten mehr CPU-power. Wenn Sie Lesen, Ihre Gesamt-CPU-Kerne, 2 ist, bedeutet es nicht, dass Sie können voll nutzen die CPU.
Derzeit gibt es keine Möglichkeit, konfigurieren Sie die CPU. Nur total-Speicher, die Sie anpassen können.
Da Fragen Sie die falsche Frage, ich denke (oder verwenden möchten Lambda für etwas, wo es nicht gebaut). Eine Lambda-Funktion hat nur einen oder zwei Kerne zur Verfügung stehen, aber die macht in Lambda ist, dass man Hunderte von Ihnen zur gleichen Zeit. Das Standardlimit der Anzahl der aktiven Lambda-Funktionen ist 100, aber das ist nur eine Grenze zu sichern, die Infrastruktur (und Ihre Brieftasche). Sie können mehr verlangen.
Also dein account kann 100 Lambda-Funktionen laufen zur gleichen Zeit, die Sie sehen konnte als 100-cores (allerdings ist es nicht). Wenn Sie einen Antrag auf Erhöhung des Limits, das könnte auch 1000 oder 10.000 oder 100.000.
Analogie: statt 1 100-core-computer, Sie haben 100 1-Kern-Computern.
Während die AWS bis heute nicht offen legen details zur Rechenleistung von AWS Lambda-Funktionen, die Sie jetzt haben nach kündigt eine Erhöhung der maximalen Arbeitsspeicher von 1536 MB 3008 MB. Ihre Dokumentation jetzt Staaten:
Auf dieser Grundlage können wir schließen, dass alle AWS Lambda-Funktionen bis zu 1536 MB Speicher haben einen einzigen virtuellen Prozessorkern zur Verfügung, während Funktionen mit mehr Speicher haben zwei Kerne zur Verfügung.
Update:
Während dieser Teil der Dokumentation ist nicht mehr verfügbar, Chris Munns von der AWS, der vor kurzem in der AWS Serverlosen Start-Tag auf 2018-07-10 bekannt, dass alle AWS Lambda-Funktionen mit mehr als 1,8 GB Speicher ausgeführt werden, auf mehrere Kerne. So scheint die Grenze zwischen single-core und multi-core für AWS Lambda-Funktionen verschoben, von 1,5 GB auf 1,8 GB.