인터넷 사용자의 수는 늘어나고, 그에 따른 네트워크의 발전도 급성장을 거듭하였지만, 서버단에서 접속자와 해당 컨텐츠 사용으로 인한 막대한 양의 트래픽이 발생하여 웹서비스 전반에 ...
인터넷 사용자의 수는 늘어나고, 그에 따른 네트워크의 발전도 급성장을 거듭하였지만, 서버단에서 접속자와 해당 컨텐츠 사용으로 인한 막대한 양의 트래픽이 발생하여 웹서비스 전반에 걸친 성능 저하가 발생하게 되었다. 인터넷 서비스를 제공하는데 있어서, 웹서버의 성능 저하는 치명적이라 할 수 있으며, 웹서버의 안정성 및 가용성 문제를 해결하기 위한 방편으로 커널단에서 웹가속기를 개발하였다. /본 논문에서 구현한 커널단에서의 웹가속기는 캐시의 방식을 충분히 이용하고 있으며, 캐시와 유사한 방식으로 속도의 향상을 얻고 있다. 커널가속기는 중간단계에서 처리할 수 있는 요청은 미리 처리하게 하고, 그 외 처리하기 힘든 내용은 원래대로 응용프로그램에서 처리하게 함으로써 기존의 처리과정은 그대로 유지한다. 커널가속기는 리눅스 OS상에서 구현된 위치에 따라 크게 interrupt part 및 kernel part로 분류되는데, 전자의 TCP port interceptor가 데이터를 가로채어 먼저 커널가속기에게 전달되도록 하므로 아파치 등의 사용자 프로그램 웹서버 보다 항상 앞서 처리 할 수 있게 된다. Kernel thread 형태로 동작하는 커널가속기는 CPU 개수와 같은 수의 main thread가 돌면서 HTTP 요청을 해석하는 HTTP parser, 응답할 데이터를 메모리 상에서 관리하는 cache manager, 가상 호스트를 지원하는 virtual host manager, 사용자 프로그램 부분의 웹서버를 관리하는 web server manager, CGI를 커널에서 처리할 수 있게 관리하는 CGI manager의 라이브러리를 이용하여 전달받은 클라이언트의 요청을 해석 및 처리하게 된다. /커널가속기는 커널내에서 동작하게 되므로, 속도향상은 물론이고 필요에 따라 커널의 다른 소스들을 쉽게 이용