ercnam
6k
2018-02-27 09:16:54
3
942

IIS + TOMCAT7 환경에서 TTFB 문제...



먼저 사이트 구조를 그려보자면 대충 이렇습니다...

WORK COM 은 제가 소스코드를 작성하는 컴이고..

이 코드를 ROOT.WAR 파일로 만들어서 SERVER COM 의 해당 폴더에 놓으면 톰캣이 풀어서 웹사이트를 서비스 하게 됩니다.

OTHER SITES 는 기존 IIS+ASP 로 서비스되던 사이트들. 여기는 별 문제 없구요.


문제가 되는건 제가 만든 IIS+톰캣7 로 돌아가는 스프링 사이트입니다.

AJAX를 이용해 파라미터를 HTTP 1.1 POST 규격(?) 으로 갑사 DB에 보내면

XML 을 응답하는데, 이걸 다시 JAVA에서 XPATH 로 뜯어서 VO에 담아서 웹페이지에 보내게 됩니다.

웹페이지에선 JSON처럼 사용하겠죠 당연히..


이제 문제가 뭐냐면....

굳이 저 XML 받는 부분이 아니더라도...

사이트 모든 부분에서 (페이지 이동이나 이런거) 크롬브라우저 개발자도구로 봤을때

Wait (TTFB) 라는 항목이 엄청난 시간이 걸린다는 겁니다..

거의 최소 3초에서 길면 10초도 넘는 미친시간이 나와요;; 찾아보니까 TTFB가 1초만 넘어도 느린거라는데 이건 진짜 심한거 같습니다;

DB 쿼리에 시간이 많이 들어서 TTFB 딜레이가 생긴다는 글도 봤는데 DB 문제는 아닌거 같은것이

저 사이트에서 DB를 쓰는 부분이 최초 로그인 할때나 저희 DB에 있는 로그인 쿼리 하는것 뿐입니다.

주 기능인 XML 다루는 부분은 그냥 갑사에 요청해서 데이터 받고 그걸 풀어서 화면에 뿌려주면 땡.

Tracert 로 해당 도메인에 쏴보기도 했는데 평균적으로 1~2ms 정도의 시간을 보여줬습니다.

이정도면 Tracert 로 문제가 있다고 판단할 소지는 아닌거 같구요..


의심되는건 IIS+톰캣 연동하는 과정에서 뭔가 문제가 생겨서 딜레이가 발생한다... 라고 생각되어지는데

IIS+톰캣 연동이 굉장히 흔치않은 (=굳이 왜 그걸 연동....??이라는 느낌) 케이스라 자료 찾기도 힘들고 미치겠네요..


혹시 IIS+톰캣 연동해서 스프링 기반 사이트를 서비스해보신 분들의 조언 부탁드리며..

정 안되면 연동을 깨고 톰캣 단독으로 사이트를 서비스 해볼 생각도 하고 있는데

IIS 없이 도메인 바인딩을 어떻게 해야하는지 모르겠습니다;;

0
  • 답변 3

  • yamanin
    2k
    2018-02-27 11:17:35

    갑사라는 곳과 인터페이스 하는 시간이 길어서일꺼 같아요.

    TTFB(Time To First Byte)는 Socket Connection, DNS체크, SSH헨드쉐이크, Request Sent 다음에

    Content Download 사이에 발생하는 이벤트고, 대략 어플리케이션 동작 시간 쯤으로 판단합니다.

    연결과는 그다지 상관 없을 꺼니까. IIS+Tomcat 연동과는 그다지 상관 없을꺼 같다는 생각이 드네요.


    일단 해당 플로우를 Log로 찍어 보는게 좋을 듯하네요. 갑사와 인터페이스하는 시간이 얼마나 걸리는지.

  • ercnam
    6k
    2018-02-27 11:47:13

    yamanin

    갑사와 통신하지 않는 부분 (단순 페이지 이동이라던가) 에서도 TTFB 딜레이가 심해서 그렇습니다.

    그러니까 TTFB 시간이라는 것이 도메인으로 들어가서 서버를 거친후의 JAVA서버단이 동작하는 속도라는 말이지요?


    그렇다면 XML을 받는 부분만 느린게 아니고 스프링 전체가 느리다는 뜻 같은데 이러면 어떤 해결책이 있을지 알고 싶습니다..

  • yamanin
    2k
    2018-02-27 13:03:09

    서버의 시작 부터 끝까지 찍어보고 느린부분을 찾는거 말고는 답이 없을꺼 같네요.

    컨트롤러와 서비스 각 구간이라도 찍어보세요. 

    단순 페이지 이동도 그렇다면 JSP에서 느려질만한 부분을 걷어내면서 확인해봐야 될꺼 같은데요.


    그리고 IIS와 Tomcat 연결 구간이 진짜로 느릴수도 있을꺼 같네요.

  • 로그인을 하시면 답변을 등록할 수 있습니다.