Das Verständnis des Planungsmodells der Go-Laufzeit ist für die Optimierung der Anwendungsleistung von entscheidender Bedeutung. Ein wichtiger Aspekt dieses Modells ist die Zuordnung von M (Maschinen) und P (Prozessoren).
Wann werden M und P erstellt?
M-Prozessoren werden wann erstellt :
P-Prozessoren werden erstellt, wenn alle lokalen Runqueues voll sind. Eine Goroutine führt ihre benachbarten Goroutinen aus, die zur Ausführung bereit sind, werden in eine globale Warteschlange gestellt und enthalten ein einzelnes P.
Blockierende Aufgaben und P-Wiederverwendung
Im bereitgestellten Testcode führen die Goroutinen blockierende Datenbankoperationen durch. Blockierende Aufgaben entfernen M-Prozessoren von P-Prozessoren.
In diesem Fall ist die Erstellung neuer M-Prozessoren erforderlich, um die blockierten Goroutinen zu verarbeiten. Die anfänglichen 8 (Anzahl der virtuellen Kerne) M-Prozessoren werden für die zweite Charge nicht ausreichen. Neue M-Prozessoren werden nach Bedarf zugeteilt.
Zusätzliche Ressourcen
Das obige ist der detaillierte Inhalt vonWann und warum weist der Go-Scheduler neue M- und P-Prozessoren zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!