응답지연 원인
- 작성자 :
- 전*효
- 작성일 :
- 2011-02-08 13:49:45
- 조회수 :
- 2,682
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
시스템을 오픈하고 얼마되지 않았는데 사용자가 폭주하면서 문제점들이 보이고 있습니다. 시스템 특성상 일정기간안에 사용자가 등록(원서접수)해야 하는 상황인데 첨부한 파일과 같은 현상으로 응답지연 현상이 자주 발생하고 있습니다. 그래서 민원이 많이 들어오고 있습니다.
서버의 문제인가 싶어 광주정부통합센터에 문의하였지만 그곳의 미들웨어 담당이 하는 말은 어플리케이션의 문제라고 합니다.
가장 큰 문제는 첨부의 첫번째 경우처럼 내부처리는 다 끝나고 dbconnection close 되었는데도 response까지 상당한 시간이 걸리는 부분이 나오고 있는데 이 현상의 원인이 무엇인지(특히 실명인증관련된 부분에서 많이 발견됨) 가능하면 빨리 알려주시길 부탁드립니다. 두번째의 경우는 connectionPool의 갯수가 적어서 그럴꺼라고 예상되는데 이부분의 갯수를 늘릴려면 context-datasource.xml의 해당 DB설정의 maxActive수(현재 8)만 늘리면 되는건지 동일하게 maxIdle 수도 늘려야 하는지 알려주시면 감사하겠습니다.
거듭 말씀드리지만 민원이 워낙 많이와서 빠른 처리 부탁드리겠습니다.
서버의 문제인가 싶어 광주정부통합센터에 문의하였지만 그곳의 미들웨어 담당이 하는 말은 어플리케이션의 문제라고 합니다.
가장 큰 문제는 첨부의 첫번째 경우처럼 내부처리는 다 끝나고 dbconnection close 되었는데도 response까지 상당한 시간이 걸리는 부분이 나오고 있는데 이 현상의 원인이 무엇인지(특히 실명인증관련된 부분에서 많이 발견됨) 가능하면 빨리 알려주시길 부탁드립니다. 두번째의 경우는 connectionPool의 갯수가 적어서 그럴꺼라고 예상되는데 이부분의 갯수를 늘릴려면 context-datasource.xml의 해당 DB설정의 maxActive수(현재 8)만 늘리면 되는건지 동일하게 maxIdle 수도 늘려야 하는지 알려주시면 감사하겠습니다.
거듭 말씀드리지만 민원이 워낙 많이와서 빠른 처리 부탁드리겠습니다.
A
안녕하세요.. 전종효님..
우선... log 상 첫번째 경우는..
두 가지 정도가 가능할 것 같습니다.
첫번째는 jennifer가 기록되는 정보가 DB 처리 부분과 최종 응답 완료 등으로 국한되어 있기 때문에 DB 처리가 완료된 후에 대한 부분은 기록되지 않습니다.
실명인증의 경우 같은 경우는 G4C와 연계가 되는 부분도 이 부분에 해당되고..
다양한 처리가 포함될 수 있습니다.
JSP를 통한 화면 처리도 포함될 수 있습니다. (첨부파일 다운로드의 경우도..
첨부에 대한 처리가 클라이언트에 전송되는 것도 포함)
따라서.. 뭐라 정확히 말씀드릴 수 없지만.. DB가 처리되고 나서의 로직들을 분석해 보셔야 할 것 같습니다.
실명인증의 경우는 외부 연계되는 부분도 고려하셔야 할 것 같습니다.
로그상 두번째 경우인데..
질문하신 것 처럼.. DB Pool의 대기 connection 수가 적은 경우 같습니다.
아무래도 서비스가 많은 경우는 기본값(8)로는 부족할 것 같습니다.
이 부분을 최소한.. WAS(또는 tomcat)의 thread 개수만큼은 잡으시는 것이 좋을 것 같습니다.
(이 경우에는 주의하셔야 할 것이 DB쪽에 더 많은 부하가 발생할 수 있다는 점입니다.
DB의 spec이 문제가 없으면.. 괜찮겠지만.. 용량이 적은 경우는 늘어난 connection 처리에 대한 부하가 그대로 DB쪽에 몰릴 수 있습니다.)
maxIdle은 heavy system일 경우 너무 적으면.. 문제지만.. 기본값이 8정도면 충분할 것 같습니다.
그럼.. 즐거운 하루되십시오.
감사합니다.
우선... log 상 첫번째 경우는..
두 가지 정도가 가능할 것 같습니다.
첫번째는 jennifer가 기록되는 정보가 DB 처리 부분과 최종 응답 완료 등으로 국한되어 있기 때문에 DB 처리가 완료된 후에 대한 부분은 기록되지 않습니다.
실명인증의 경우 같은 경우는 G4C와 연계가 되는 부분도 이 부분에 해당되고..
다양한 처리가 포함될 수 있습니다.
JSP를 통한 화면 처리도 포함될 수 있습니다. (첨부파일 다운로드의 경우도..
첨부에 대한 처리가 클라이언트에 전송되는 것도 포함)
따라서.. 뭐라 정확히 말씀드릴 수 없지만.. DB가 처리되고 나서의 로직들을 분석해 보셔야 할 것 같습니다.
실명인증의 경우는 외부 연계되는 부분도 고려하셔야 할 것 같습니다.
로그상 두번째 경우인데..
질문하신 것 처럼.. DB Pool의 대기 connection 수가 적은 경우 같습니다.
아무래도 서비스가 많은 경우는 기본값(8)로는 부족할 것 같습니다.
이 부분을 최소한.. WAS(또는 tomcat)의 thread 개수만큼은 잡으시는 것이 좋을 것 같습니다.
(이 경우에는 주의하셔야 할 것이 DB쪽에 더 많은 부하가 발생할 수 있다는 점입니다.
DB의 spec이 문제가 없으면.. 괜찮겠지만.. 용량이 적은 경우는 늘어난 connection 처리에 대한 부하가 그대로 DB쪽에 몰릴 수 있습니다.)
maxIdle은 heavy system일 경우 너무 적으면.. 문제지만.. 기본값이 8정도면 충분할 것 같습니다.
그럼.. 즐거운 하루되십시오.
감사합니다.