Warum ist meine Dispatching auf Schauspieler in Akka reduziert?

8

Ich habe einen Actor-Pool von 100 aktiven Actors, die sich einen Work-Stealing-Dispatcher teilen, wobei CorePoolSize auf 100 gesetzt ist. Aber jetzt, wenn 19 Nachrichten an einen der Actors gesendet werden, sind die 19 Nachrichten nicht parallel zu 19 Actors 5 Nachrichten werden parallel ausgeführt. Wenn diese 5 Nachrichten beendet sind, werden die nächsten 5 Nachrichten von denselben 5 Akteuren erneut verarbeitet und so weiter. Warum laufen meine 19 Nachrichten nicht parallel, was fehlt mir hier?

Mein Code sieht grundsätzlich so aus:

%Vor%

Die Ausgabe:

%Vor%

edit: Ich benutze Akka 1.0

    
rocksteady 28.04.2011, 12:38
quelle

2 Antworten

12

danke für Ihre Anfrage, ich lokalisierte den Engpass und reparierte es in diesem Commit zu Akka Master:

Ссылка

Es wird in Akka 1.1-RC1 veröffentlicht werden

Prost, √

    
Viktor Klang 29.04.2011 12:44
quelle
2

Ich denke, der Dispatcher ermöglicht es Ihnen, die Durchsatzeigenschaft anzupassen. Dies definiert die Anzahl der Nachrichten für einen bestimmten Akteur, den der Dispatcher in einem einzigen Durchlauf verarbeiten soll. Sie könnten die folgende Konfiguration in Ihrer akka.conf-Datei hinzufügen

%Vor%

Standardmäßig ist es 5

    
Nilanjan 28.04.2011 13:41
quelle

Tags und Links