라벨이 웹서버인 게시물 표시

대량접속 웹서버 구성방안

접속자가 많을 경우 웹서버 구성빙안에 대해서 자료를 수집해본 결과이다. 십여년을 넘게 다양한 웹서버를 구성하고 운영해 왔지만 세션이 10,000을 넘는 경우는 없었다. 폭주한다고 한게 보통 5,000이상이었으나 10,000을 넘는 경우를 경험하기는 쉽지 않았다. 보통은 한대의 웹서버를 운영하고 웹서버 튜닝을 통해 해결을 시도한다. 아파치는 프로세스 모드에서 3,000을 버티다 죽는 경우가 발생하여 스레드 모드로 변경하니 8,000까지 무리없이 작동되는걸 경험하였다. 하지만 최근의 상황은 다르다. 40만 이상의 세션을 무리없이 처리해야 한다. 서버당 12,000 ~ 18,000정도의 세션이 가능하다고 하는데 그건 서버사양에 따라 프로세스 방식일 경우의 이야기 같다. 아파치 스레드 모드는 더 많은 세견을 처리할꺼 같고 엔진엑스의 경우 홈페이지에 서버당 백만세션을 처리 가능하다고 표기해 놓고 있다. 내 생각엔 엔진엑스가 답인거 같다. 또한 서버를 병렬로 구성할 때 보통 L4장비를 통해 구성하지만 Round robin DNS 방식을 사용하면 저렴하게 병렬구성이 가능하다. 그래도 안심이 안된다면 CDN 서비스가 있다. 이 서비스는 분산되어 있는 IDC에 트래픽을 나누어 주는 서비스로 클라이언트에서 가장 가까운 서버로 연결을 해주는 서비스로 올림픽때 영상서비스 같은 경우 사용한다. 처음엔 어떻게 하지..., 대형 포털은 어떻게 구성 되어 있을까? 등등 많은 의문을 가졌지만 이제는 어느정도 환해진 기분이다. 이제 적용하는 일만 남았는데 엔진엑스가 너무 강력해서 비용이 많이 안들어 과연 의견이 채택될지 의문이다.

Sun One Server 에 관해서

이미지
Sun One Server 를 웹서버로 사용한다. 이런 서버가 있는 줄을 몰랐다. 그 동안 너무 주류 서버만 신경 썼나 보다. 그리하여 찾아보니 꽤나 유서 깊은 웹서버이다. 물론 이제는 과거의 찬란함을 찾아 볼 수 없지만...., Sun One 의 전신은 iPlanet 이다. 이 iPlanet 은 Netscape Enterprise 기반인거 같다. 넷스케이프 엔터프라이즈는 브라우저의 역사이다. 넷스케이프를 만든 짐클라크는 실리콘그래픽스도 만들었다. 이 실리콘그래픽스 건물에 현재 구글이 둥지를 틀고 있다. 이 건물은 이렇게 생겼네요. 높지 않는 건물에 통유리가 인상적이었습니다. 암튼, 유서 깊은 웹서버였네요. 근데 이걸 어떻게 운영해야 하지..... 자료는 있나 ?

Nginx (엔진엑스) 에 대하여

Nginx 는 웹서버이다. 보통 경량 웹서버라고도 한다. 소켓을 이용해서 통신을 하는데 소켓을 연결할 때 블로킹과 넌블로킹이 있다. 블로킹은 연결이 끝날때까지 제어권을 운영체제에 주지 않는 방식이고 넌 블로킹은 제어권을 운영체제에 주는 방식이다. 소켓이 연결되고 난 후 제어권이 운영체제에 넘어오지 않았을 경우 에러가 난다면..., 대략 난감한 상황이 벌어진다. 엔진 엑스는 넌블로킹 방식이다. 문제가 되는 세션은 잘라 버릴 수 있다는 것이다. 또, 프로세스와 스레드 방식이 있다. 프로그램이 실행이 되려면 프로세스를 얻어야 한다. 하지만 프로세스 하나를 자세히 보면 더 작은 부분으로 나눌 수 있는데 이를 스레드라 한다. 예를 들어 1부터 100까지 더하는 알고리즘에서 1부터 100까지 더하고 알고리즘에서 빠져 나올때까지가 프로세스이다. 하지만 더하는 도중에 결과를 실시간으로 보고 싶다면 스레드로 구성하면 가능하다. 이럴 경우 프로그래머의 능력이 필요하다. 엔진엑스는 스레드 방식이다. 속도면에서 넌블로킹과 스레드의 조합은 환상적이다. 기존의 구성에 변경을 주지 않고 앞단에 엔진엑스를 설치하고 프록시로 처리하기만 해도 속도향상이 이루어진다고 한다. 과연 그런지는 한번 해봐야 할 꺼 같다.