2012-01-11 2 views
1

Notre application a un nœud de serveur qui délègue des délégués à de nombreux nœuds de travail qui sont des acteurs distants. Cette application devrait évoluer en augmentant le nombre de nœuds de travail.Akka Remoting pour une application de serveur de grille

Nous utilisons Akka 1.3 RC4, et faire quelque chose de mal pari parce que nous remarquons ce qui suit:

1> Les nouvelles prises sont ouvertes lorsque les tâches sont envoyés aux nœuds de travail du serveur. Les prises se ferment une fois la tâche terminée. Y a-t-il un avantage par rapport aux raisons pour lesquelles les prises ne sont pas toujours ouvertes? Y a-t-il un conf que nous devons modifier? 2> Lorsque nous listons le nombre de descripteurs de fichiers ouverts par le PID du processus serveur, le nombre augmente proportionnellement au nombre de sockets ouverts (totalement attendus). Le but de cette application est de mettre à l'échelle d'énormes fermes de calcul (globales), mais une fois la limite des descripteurs de fichiers atteinte, le nœud de serveur ne peut plus ouvrir de sockets pour d'autres noeuds de travail. Je me demande si nous devrions changer la conception et l'approche d'une autre manière.

Une autre chose que nous envisageons actuellement est de passer à Akka 2, mais nous ne savons pas si c'est la meilleure façon de résoudre ce genre de problème.

Merci!

Répondre

0
  1. Vous pouvez augmenter le délai d'attente de lecture pour les connexions, pour les garder ouverts plus longtemps
  2. Vous devez passer à 1,3 RC6 qu'il fixe une performance liée à distance émet
  3. Akka 2.0 être Les resuses par défaut de connexions entrantes pour les messages sortants, menant à bien une meilleure évolutivité pour votre cas d'utilisation

Hope this helps,

Cheers, √

+0

Merci Victor. Essayer RC6 tout de suite, mais je pense que nous passerons à la version 2.0 éventuellement (la migration de code prend du temps) –

+0

Merci pour votre réponse rapide! En ce qui concerne le point 1 de votre conseil ci-dessus: Même si j'ai: \ n "connection-timeout = 1000 # Nombre dans l'unité de temps" \ n dans la section remote/server de mon akka.conf, les prises obtiennent ouvert et fermé presque immédiatement (dans une seconde environ du message envoyé); c'est-à-dire que les prises ne restent pas ouvertes pendant 1000 secondes comme prévu. J'ai eu ce même comportement en utilisant à la fois Akka 1.2 et Akka 1.3-RC6. Pourriez-vous s'il vous plaît nous donner un pointeur sur ce que je fais peut-être incorrectement? –

+0

En ce qui concerne no1, j'ai dit "read timeout": read-timeout = 120 # Nombre dans l'unité de temps. –

Questions connexes