문제

Our application has a server-node that delegates work to numerous worker-nodes that are remote actors. This application is expected to scale by increasing the number of worker nodes.

We are using Akka 1.3-RC4, and bet doing something wrong because we notice the following:

1> New sockets are opened when tasks are being sent to worker nodes from server. The sockets close once the task completes. Is there a benefit over / reason why the sockets are not always kept open? Is there any conf that we need to tweak?

2> When we list the number of file descriptors opened by the server process PID, the number shoots up proportional to the number of sockets open(totally expected). The goal of this application is to scale to huge (global) compute-farms however, once the limit of file descriptors is reached the server-node can't open sockets for any more worker-nodes. Wonder if we should change the design and approach in another way.

Another thing we are actively considering is to move to Akka 2 however, not sure if it has a better way to solve this kind of problem.

Thanks !

도움이 되었습니까?

해결책

  1. You can increase the read timeout for the connections, to keep them open longer
  2. You should switch to 1.3-RC6 as it fixes some remote-related performance issues
  3. Akka 2.0 be default resuses inbound connections for outbound messages, leading to much better scalability for your use-case

Hope this helps,

Cheers, √

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top