2016-12-20 3 views
0

Tout acteur peut recevoir trop de messages. Comment détecter un tel goulot d'étranglement?Comment détecter trop de messages? [Akka Actors]

Si cela se produisait alors comment cela ressemblerait à l'utilisation du processeur? Serait-il toujours 1 core sur 100% d'utilisation ou non?

Dans Akka 1.x, je pouvais vérifier la longueur de la file d'attente des messages, mais est-elle indisponible dans 2.x. Comment faire face maintenant?

+1

Cette discussion peut être lié à votre question: http://letitcrash.com/post/17707262394/why-no-mailboxsize-in-akka-2 – Berger

+4

Jetez un oeil à Kamon.io. C'est facile à configurer avec Akka. Avec le LogReporter activé, vous pouvez facilement voir ces métriques relatives aux acteurs. – EmiCareOfCell44

+0

Pouvez-vous définir des messages "trop"? Habituellement, l'utilisation de l'acteur est une bonne chose ... Que recherchez-vous finalement? –

Répondre

3

Trop de messages dans un acteur ne causent pas de problèmes de CPU - ils finiront par consommer beaucoup de mémoire en fonction des messages et de la stratégie utilisée. Jetez un oeil à ces stratégies: http://doc.akka.io/docs/akka/2.4.16/scala/mailboxes.html La valeur par défaut est une boîte aux lettres non bornée - donc le système aurait consommer toute la mémoire ... (envisager d'utiliser la contre-pression pour de tels cas - voir les flux akka)

Kamon vous permet de voir les acteurs métriques (taille de la boîte aux lettres, etc.) Ceci est assez simple à configurer (mais a besoin aspectj) http://kamon.io/integrations/akka/actor-router-and-dispatcher-metrics/