본문 바로가기

IT 정보

사용자가 몰리면 서버가 터지는 이유와 해결 방법

반응형

 

대학생이라며 수강신청(일명 수강전쟁)이 생각나실 것이고 게임이라면 게임 서버 사용자 대기를 겪어보셨거나 한두 번 이상 경험을 해보신 분들이 계시리라 생각되는데 왜 대기를 하거나 접속이 되지 않는지 알고 싶어지기도 하고 중요한 순간일 경우 화가 나기도 합니다.

 

이 글에서는 왜 폭주되면 접속이 제대로 되지 않는 이유 혹은 접속 대기가 있는 이유와 원인을 알려드리고 사용자 입장과 서버 관리자 입장에서 조치해야 하는 부분이 어떤 것이 있는지 알려드리려고 합니다.

 


◆ 서버 폭주의 의미

 

사용자(클라이언트)는 서버에게 접속을 하면 서버에게 데이터를 요청(request)하고 서버는 요청받은 내용의 답(response)을 보내주는 것으로 흔히 트래픽(traffic)이라고 불리는 기본적인 룰을 적용하며 어떠한 서버 방식이든 이 방식을 사용하여 데이터 처리를 진행합니다.

 

하지만 서버의 접근 한도를 넘어서거나 서버가 동시에 처리할 수 있는 양을 넘어버리게 되면 그 순간부터 시도하는 사용자들의 요청에 답을 하지 못하는 상황이 발생하기 때문에 흔히 말하는 "서버가 터졌다"라는 용어를 사용하게 됩니다. 

 

 

하지만 서버가 실제로 오작동하고 있는 의미는 아니며 접속이 되지 않던 시점 이전에 접속한 사람들은 여전히 그대로 사용할 수 있습니다. 단지 이미 이용 중인 사람들에 한해서 서버가 지속적으로 요청에 대해 응답을 해주게 되며 신규 요청에 대해서는 거부하게 되는 것입니다.

 

이럴 경우에는 보통 서버의 최대 접속 한도를 채웠기 때문에 이전에 접속한 사람들에 대한 접근을 거부하는 것이지만 다른 경우로는 서버가 완전히 먹통이 되어 오작동하는 경우도 있는데 이를 흔히 말하는 DDoS(분산 서비스 거부 공격) 내지 트래픽 폭주라고 불리며 간단히 말해 서버가 받아들일 수 있는 순간 네트워크 트래픽량을 넘어서 제어할 수 없는 상황이 된 것입니다.

 


◆ 서버의 한계점

 

 

서버의 한계점은 서버 설정 구성 및 서버 환경, 서버 사양에 주로 큰 영향을 주고 있으며 서버가 좋고 많을수록 더 큰 능력을 발휘하게 되는 게 그렇게 되면 서버의 가격이 천문학적인 가격이 나오게 되며 유지비도 어마 무시할 정도로 많이 나오게 되기 때문에 구글이나 네이버처럼 큰 규모의 사이트가 아닌 이상은 매우 부담스러운 가격입니다.

 

그래서 보통은 로드밸런싱(Load Balancing)이라는 네트워크 구성을 통해서 트래픽을 분산시키는 방법을 많이 사용하게 되는데 사실 이것도 해결책 중 하나가 아닌 트래픽이 몰리지 않도록 분산시켜줄 뿐이지 임계점이 넘어가면 마찬가지입니다.

 

 

로드밸런싱이란 같은 구성을 가진 서버를 하나의 네트워크로 묶어서 트래픽을 다른 곳으로 이동시켜주는 네트워크 방식을 말하는데 예를 들어 3개의 서버가 있는 상황에서 1번 서버가 트래픽 로드가 많아지고 있는 경우 로드밸런서라는 장비에서 이후 접근하는 사람들은 2번의 서버로 접속시켜 서버 폭주가 발생하지 않도록 다른 서버로 접속시켜줍니다.

 

대부분의 포털사이트를 포함한 규모가 큰 서버에서는 많이 사용하는 방식이지만 적은 규모로 구성되어 있는 서버에서 사용하는 건 오히려 금액적 문제가 있고 굳이 로드밸런싱을 하지 않아도 되기 때문에 불필요한 경우도 있습니다.

 

 

따라서 서버의 임계점은 어느 서버에서나 어떤 방식을 써도 임계점은 존재하며 임계점을 넘지 않도록 하는 것이 서버 관리자의 주된 업무이자 항시 유지를 해야 하는 것 중 하나입니다.

 


◆ 사용자 입장

 

 

사용자 입장에서는 서비스를 이용하기 위해서 접근을 했지만 서버로부터 접근을 할 수 없거나 접속 대기가 걸려있으면 기다리거나 계속 새로고침을 하시는 경우도 있지만 절대 에러 페이지가 발생하지 않았다면 새로고침을 하지 않는 것이 좋습니다.

 

정부 사이트나 게임처럼 접속 대기 수를 표시해주는 경우라면 새로고침없이 그대로 유지를 하고 있는 것이 가장 좋으며 만약에 접속 대기를 표시하지 않고 그냥 무한정 로딩하고 있다면 브라우저에서 에러를 표시하기 전까지는 계속 유지하시는 것이 좋은데 그 이유는 새로 접근할 경우 서버에서는 새로 요청하는 것으로 간주하기 때문입니다.

 

하지만 대학교 수강신청처럼 그냥 아무것도 안되고 당장 해야 하는 상황인데 접속이 안 되는 것을 대학생이라면 누구나 겪어본 것이고 한때 피시방은 다른 가정집보다 빠르기 때문에 피시방에서 가야 한다는 말이 있기도 했는데 사실 인터넷이 빠르다고 해서 바로 접속할 수 있는 것은 아닙니다.

 

따라서 아무리 급한 상황이라고 하더라도 서버의 임계점을 사용자가 제어하거나 초과해서 접속할 수 없기 때문에 어쩔 수 없기 기다리는 방법밖에 없으므로 접속이 될 때까지 시도해야 합니다.


글이 유익하셨다면 공감, 댓글, 구독해주시면 블로그 발전에 큰 도움이 됩니다. ^^-

반응형