none
multi clients - multi servers latency RRS feed

  • 질문

  • C#, NET 2.0, WinForm Application, Windows 7(x64)

    PC     ------ Controller (Server1)

            ------ Controller (Server2)

            ------ Controller (Server3)

            ------ Controller (Server4)

            ...

            ------ Controller (Server N)

    Application 프로그램은 client sockets을 각 외부 서버 수 만큼 생성 하였음.

    각 client Sockets 의 SendCommand()/Receiver() 는 BGW로 구현 하였음.

    하나의 client 소켓이 서버에 연결하여 초기 작업을 수행하는 시간이 약 3초 정도 소요됨.

    - 여기서, 초기 작업이라 함은 약 30개의 query를 서버에 보내 응답 받는 작업을 의미함.

    동시에 모든 client 소켓이 각 서버에 연결하여 초기 작업을 수행하는 시간이 18초가 소요됨.

    6배의 시간 차이가 발생하는 이유가 무엇일까요 ?

    2013년 7월 3일 수요일 오전 11:53

답변

  • 일단 두가지 정도 검토해봐야 할 것 같네요.

    1. 먼저 1개의 클라이언트 초기 작업이 30개의 쿼리니까, 30*N개의 쿼리를 처리하는 서버의 처리소요시간.
               : 30*N개도 3초가 걸리는지.

    2. 여러 쓰레드를 사용하여 실행되도록 구성되었더라도 클라이언트와 서버 모두, 1개의 CPU는 1개의 쓰레드 단위로 실행한다는 점.
               : 1개의 CPU가 시간을 잘 쪼개 여러 쓰레드를 처리하는데 부담이 없는지.(서버 포함)

    2013년 7월 12일 금요일 오전 3:04