Q&A

  • 2 티어 환경의 한계는 몇대의 클라이언트일까??
안녕하세요!!

다음환경에서 2티어와 3 티어 구성중 어느것이 더 빠르고 안정적일까요??

- 시스템 사양 : cpu 2.8 , ram 512 구성
- 라인 : 100메가 정도 (kt IDC 센터 입주)
- 운영체제  : window2000 서버 , mssql 7.0

위와 같은 환경에서 원거리 클라이언트가 서버 data를 읽고 쓰고 하는 환경입니다.
읽고 쓰는 빈도는 1일 대략 300 ~ 600 건
그리고 클라이언트 수는 max 50 개정도 예상 됩니다.

현재 2티어 환경인 bde 로 바로 연결해서 tcp/ip 로 바로 접속해서 사용하고 있습니다.
현재 클라이언트 수는 5개 정도 인데 아직까진 속도 부분은 문제가 안되는것 같습니다.
그런데
클라이언트가 계속 늘어나 50개 정도 이면  bde 2 티어 환경에서 견딜수 있는지 의문이
듭니다.

만약에 2티어  환경에서 50 개의 클라이언트을 처리 해내지 못하면 3티어로 환경으로  
변경하면 문제를 해결 할수 있을까요.? 아니면 2티어 환경에서 50 클라이언트를
서비스 할수 있는 다른 방법이 있을까요?

위와 같은 환경에서 클라이언트가 몇대 이상일때 3티어로 구성해야 하는지 알고 싶습니다...

그리고 3티어로 구성해야 하면 어떤방법으로 접근하야 하는지 궁금합니다..
마이다스.. 아니면 코바 ...

그럼 즐거운 주말 보네세요..
5  COMMENTS
  • Profile
    착한천사 2004.04.18 03:37
    일단 님이 제공하신 정보에 따르면,
    BandWidth가 100Mbps 정도라고 예상됩니다..
    하지만, KT IDC라고 하셨으니, 아마도 Shared 100Mbps일겁니다.
    그렇다면, 평균 3Mbps정도의 속도가 나오고,
    다시 Byte 단위로 나누면, 384Kbye/Sec 정도가 나올겁니다.
    그러면, 별 무리가 없다고 생각할 수도 있지만,
    2-Tier의 가장 큰 단점, DB Connection & Parsing 단계로 인한
    문제(응답속도저하)가 발생하게 됩니다.
    물론, Stored Function/Procedure를 사용한다면,
    약간의 속도향상을 기대할 수 있지만,
    그것도 Connection이란 문제에 부딪히게 되어,
    큰 속도향상을 기대할 수 없습니다.
    더불어서, Client 수(동시 접속자수가 몇 Client인지는 밝혀주시지
    않아서) 20명정도로 잡고, 항상 Connection을 종료시켜준다는
    가정하에서(만약, 항상 프로그램을 켜 놓는다면, connection은
    계속되므로 문제가 있음) 가능할지도 모르지만,
    일단, 입력하고, 저장할때에 최소 1초 정도는 소요되리라 예상됩니다.
    또한, 약간의 통계를 위해서 SQL를 던지게 되면,
    아마도, 소요시간이 생각보다 몇배로 많이 나오시게 될 겁니다.
    따라서, MS-SQL을 사용하시고 유저가 50명 정도라면,
    3-tier를 권하고 싶습니다.
    3-Tier를 사용하신다면, MS-SQL이니만큼
    Midas 정도를 생각하셔도 될 듯합니다.
    추가적으로, Corba를 사용하는것보다..
    Socket을 이용한 접속법을 추천해 드리고 싶습니다..
    (제가 사용해본 결과, 백본 T1급에서 2-Tier, Oracle, Client 16 일때
    속도저하는 상당했었습니다.. 간단 조회(리스트) 평균, 1.2초,
    입력평균, 1초, 수정평균, 1초, 통계조회 평균, 7초,
    물론, Oracle Tunning을 전임자가
    잘못하여 나타나는 결과도 잇었지만, 대체적으로 그러했습니다..)
    참고하시기 바랍니다..





  • Profile
    김진용 2004.04.17 19:56
    요구하시는 질문이 2티어와 3 티어 문제가 아닌것 같네요...

    로칼이 아닌 리모트로 작업을 하시는 문제인것같은데..

    이런문제는 2티어와 3 티어 보다.. 닷넷아니 자바를 활용하시는게 드 요율적이지 않겠는지요..



  • Profile
    [勳]후니 2004.04.17 21:13
    별문제 없을꺼 같은데요...

    제가 필드에서 시리얼 통신 장비가 물려있는 pc에

    14개의 클라이언트가 물리고여...

    pc사양은 기억이 안나지만.. 제시하신거 보다 느렸습니다.

    1분에 몇개의 통신을 하고요..

    잘 돌아 갔습니다. 50개의 클라이언트라고 해도

    하루 500~600개 권이면 문환할리라 봅니다.

  • Profile
    이기석 2004.04.18 07:30
    답변달아 주신 여러 분께 감사 드립니다.

    착한천사님  2티어의  DB  Connection & Parsing
    단계에서 속도 저하를 개선하는 유일한 방법이 저장 함수/프로시저
    밖에 없는 것일까요??
    혹시 다른 방법이 있으면 알려 주세요!

    동일한 환경에서  2티어 보다 3티어  환경이 속도가 더나는 이유가
    2티어서 DB  Connection & Parsing 에서 오는 문제가 3티어에서는 없는
    것입니까??  아니면 다른 이유가 있습니까??

    수고 하세요~~


    수고 하세요

  • Profile
    곰다방~미스김 2004.04.19 19:59

    1.서버사양을 확 높이믄 해결되겠죠...
      다만 그렇지 않고 주어진 환경안에서 개선할려고 한다면 그나마 프로시져등을 사용하는게 좋은거 같습니다.아니면 로직을 분산하는것도...긴쿼리가 꼭 좋은건 아닙니다...쿼리로 해결할게 있고 로직으로 해결할게 있고..상황에 맞게..

    2.client가 얼마 안된다면 2티어가 속도 훨씬 빠릅니다..
      다만 db서버가 감당할수 있는 수를 넘어서게 되면 3티어가 2티어보다 빠르죠..
    이유는 다들 아시겠지만 2티어에서는 클라이언트가 db와 커넥션을 유지하고 있구요...붙었다 떨어졌다....서버에 부하를 주게되구요...
    3티어는 db와 애플리케이션 서버가 항상한개만 붙어있게 할수 있지요...
    절대적인건 아니지만 보편적으로 위와 같은 이유로 다수의 클라이언트가 있을경우 3티어를 쓰죠...