2011-10-04 2 views
0

액터를 사용하는 동시 Scala 프로그램의 실제 프로토 타입이 있습니다. 나는 이제 다른 액터의 수를 미세 조정하려고합니다.Scala의 동시 네트워킹

처리의 한 단계는 인터넷을 통해 새로운 데이터를 가져와야합니다. 물론, 그 측면을 빠르게하기 위해 내가 할 수있는 일은 아무것도 없습니다. 그러나 여러 요청을 동시에 시작하면 전체 시간을 줄일 수 있습니다. 따라서 질문은 다음과 같습니다 :

=> Scala 또는 Unix 시스템에서 최대 num 소켓과 같은 동시 네트워킹에 제한이 있습니까? 그렇다면 어떻게 그것이 무엇인지 알아낼 수 있습니다.

답변

5

Linux에서는 각 프로그램에서 열 수있는 열린 파일 설명자 수에 제한이 있습니다. 이는 ulimit -n을 사용하여 볼 수 있습니다. /proc/sys/kernel/file-max에는 시스템 전체 제한이 있습니다.

또 다른 제한은 Linux 방화벽이 추적 할 수있는 연결 수입니다. iptables 연결 추적 방화벽을 사용하는 경우이 값은 /proc/sys/net/netfilter/nf_conntrack_max입니다.

또 다른 제한은 물론 TCP/IP 자체입니다. 각 연결에는 (localIP, localPort, remoteIP, remotePort)의 고유 한 조합이 필요하기 때문에 동일한 원격 호스트와 포트에 대해서만 65534 연결을 가질 수 있습니다.

동시 연결을 통한 속도 향상에 관해서는 더 많은 연결을 사용하는 것만 큼 쉽지는 않습니다.

병목 현상의 위치에 따라 다릅니다. 로컬 연결을 완전히 사용하는 경우 연결을 추가하면 작업 속도가 느려집니다. 동일한 원격 서버에 연결하고 연결이 완전히 사용되면 더 많은 시간이 소요됩니다.

로컬 연결이 완전히 사용되지 않고 여러 원격 호스트에 연결되어있는 경우 이점이 있습니다.

웹 브라우저를 보면 동일한 원격 서버에 연결될 수있는 연결 수에 제한이 있음을 알 수 있습니다. 또한 총 연결 수에 제한이 있습니다.

+0

이것은 내가 필요한 정보입니다. 정말 고마워요. Linux 프로보다 뛰어난 것은 없습니다! – providence