ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Keep Alive Option 처리
    Apache 2017. 6. 2. 15:20



    이번 삼성전자 서비스 프로젝트를 투입시에 발생한 이슈로,


    Qos 영역과 네트워크 영역, Apache / Tomcat / Spring 등 모든 부분을 확인하였는데 


    3일 내내 고생했던 내역에 대해서 정리합니다.


    일단 이슈 해결은 Keep Alive 라는 옵션을 off -> on 처리 하는것으로 해결 하였고, 


    이슈 현상은 동접자 수가 200 ~ 1000명이지만 내부망( 삼성전자는 전용선을 사용하더군요 ) / 외부망에서 웹페이지를 호출하는데 시간이 엄청 차이가 나는 현상


    외부망에서는 정상적으로 호출이되고 ( 약 0.3초 안에 모든 페이지가 호출 됨 )

    내부망에서는 몇몇 파일들이 호출되는데 있어 ( 약 30초 이상이 걸리는 현상 )


    존재하여 이를 해결하기 위해서 여러개의 가능성을 두고 확인 하였으나 정상적으로 처리가 되지 않음


    내부망에서 이슈이기에 프락시 서버나 이런 부분에서 패턴 체크 / URL 체크 등 모든 내역에 대해서 방화벽을 해제 요청 하였으나.


    조금 빨라지고 동일한 현상이 생김



    이를 해결하기 위하여 


    자주 방문하여 내역을 확인하는 ( https://beyondj2ee.wordpress.com/2014/01/27/tcp-keep-alive-%ED%80%B5-%EC%A0%95%EB%A6%AC/ 를 참조하여 ) BEYONDJ2EE 님의 블로그를 확인하여 이에 대한 원인을 찾고 해결함


    A( 클라이언트) -> B(NAT & Proxy Server)-> C ( WEB Application ) 순서로 처리되고 서버가 존재하는 경우


    A-> B영역으로 넘어갈때는 정상이고 B -> C영역으로 넘어갈 경우에 발생하는데 NAT & Proxy 에서는 캐싱 처리 ( 즉 간단하게 설명해서 제한된 내역만큼을 메모리에 올려 처리 ) 하는데 이때 정책 처리된 오래된 세션으로 가지고 있는 놈들을 NAT & Proxy에서 해당 세션을 날려버리는 경우가 존재함 ( 네트워크 / Proxy / WEB도 서로 정상적인데 왜 해당 현상이 일어나는지 확인 할 수 없음 )


    이 때문에 실제 클라이언트에서는 호출을 받지 못하고 계속 응답이 올 때까지 기다리고, 그러므로서 행걸리는 사용자들이 많으니 WAS에 부하가 가고, WAS에서는 동접자들이 세션을 계속 물고있으니 처리 메소드 ( Tomcat 기준 메소드는 약 300개 까지 처리 가능한 것으로 알고 있음 ) 이슈가 생성되는 부분이 존재 


    나와 같은 경우는 was에서는 엄청난 부하는 존재하지 않았지만 클라이언트에서 30초 이상이 걸리고 있고, 외부망은 정상적으로 보아 위와 같은 현상이라고 판단 


    이를 해결 하기 위하여, Apache option 중에 conf/extra/httpd-mpm.xml 을 가보면 keep alive라는 옵션이 존재하거나 없을텐데 이를 on 처리 해주면 해결 된다.


    keep alive의 경우 간단하게 정책 처리된 세션을 사라지지 않고 최상위로 끌어올려 세션이 날아가지 않도록 하며,

    keep alive를 on처리 할 경우 off 일땐 모든 페이지를 호출하는데 있어 1페이지 호출당 100개의 파일을 가져오게되면, 각각 호출되는 파일들을 가져오고 성공하면 다른파일을 가져오고 하는데, on처리 시 100개의 파일을 1개의 URL 호출로 ( Socket이 여러개로 호출하느냐 1개로 호출하느냐의 차이 ) 처리 가능함 


    이로써 사용자들이 몰려도 느끼는 시간은 80% 해결됨


    그 이외의 경우도 존재하나 위 링크를 타고 좀 더 확인해보면 될 듯




    댓글

Designed by black7375.