Ich schaue hier über die Dokumentation: Ссылка
Wir verwenden Akka so, dass wir zwei separate Dispatcher (standardmäßige Gabel-Join-Executoren) für verschiedene Akteure haben. Wir stoßen jetzt auf einige Leistungsprobleme und wir prüfen, wie wir die Konfigurationsparameter des Dispatchers optimieren und sehen können, wie sich diese auf die Leistung der Anwendung auswirken.
Ich habe mir die Dokumentation angesehen, verstehe aber die Konfigurationsparameter nicht wirklich. Zum Beispiel, nur für die einfache Vorgabe, Gabel-Beitreten-Executor-Dispatcher:
Was sind das und wie sollten wir sie konfigurieren, um zu sehen, wie sie die Anwendungsleistung beeinflussen?
%Vor%Danke!
Diese Konfiguration hängt natürlich von Ihrer Hardware ab.
Angenommen, Sie haben zwei verfügbare Prozessoren auf Ihrem Computer, dann können Sie die Anzahl der Threads konfigurieren, die ein bestimmter Dispatcher über den Parallelitätsfaktor hat.
%Vor%Dann können Sie Grenzen festlegen, um das Ergebnis dieser Multiplikation zu kontrollieren und extreme Werte zu vermeiden.
%Vor%Wenn Sie nun die richtigen Parallelismus-Faktor + -Grenzen auswählen möchten, müssen Sie sich fragen, wie viele Akteure zu einem bestimmten Zeitpunkt Ihr Disponent verantwortlich sein wird.
Es erscheint logisch, anzunehmen, dass mehr Akteure mehr Threads bedeuten, aber ich rate Ihnen dringend, Ihr System zu überwachen, um die Ursache für Ihre Leistungsprobleme zu finden und nicht nur die Konfiguration zufällig zu optimieren.
Als Randnotiz sollten Sie den "throughput" -Parameter Ihres Dispatchers überprüfen, da Sie damit die Fairness der Threadzuordnung des Akteurs konfigurieren können. Dies kann einen großen Unterschied im Batch-ähnlichen Prozess ausmachen.
%Vor%Tags und Links java akka executorservice forkjoinpool