태그 보관물: web

WEB서버 DB서버 분리할 경우 성능 효과

1. 개요

일반적인 호스팅 서버나 소규모의 내부인프라를 구성하고있는 서버의 경우 DB서버 와 WEB서버는 하나의 서버에 구성 및 구축을 하게 된다.

이유는 간단하죠 가격이 싸고, 구성이 쉽고, 분리된 서버가 아니기 때문에 네트워크 지연시간이 전혀 발생하지 않는다. 이 때문에 요즘 스타트업 벤치기업 같은경우 저렴한 장비로 많은 성과와 기대치를 얻을수 있는 서버1대 구성으로 가는게 보통이다.

2. WEB서버 DB서버 분리 시점

가정을 해보도록 하자. 서버1대의 성능을 1로 가정하고, 초기 서버 셋팅 이후에 DB서버 0.1 WEB서버 0.1 이라고 했을때 이러한 수치가 증가하여 0.6+0.6=1.2 이 될 경우 서버 성능 1 을 넘어서는 결과를 가져와서 이 시점부터 서버성능 저하 가 발생하게 된다.

그림으로 다시 자세히 설명해보도록 해주겠다.

그림을 보면 현재 1분동안 서버 부하가 0.32, 5분은 0.28, 10분은 0.24 이다. 이 서버의 CPU 코어수를 보면 8코어의 CPU 성능을 가지고 있다.

때문에 총 부하 8 부터 성능 저하가 발생하고, 그 이하에서는 큰 성능 저하는 발생하지 않게 된다는 이야기가 된다. 따라서 이런 경우에는 불필요하게 DB서버 와 WEB서버를 분리할 필요가 없다.

3. 웹서버 DB서버 분리하면 효과는 어떨까?

1대의 하드웨어 리얼 서버에 웹서버 DB서버 2가지의 서비스를 동시에 운영중인 상태에서 사이트 접속자가 많고, 리소스 많은 애플리케이션을 많이 동작시킬 경우 시스템 부하가 높게 상승하게 된다.

때문에 1대의 하드웨어 서버에 웹서버 1개 설치. 또 나머지 1대의 하드웨어 서버에 DB서버 한대를 설치하게 되면 성능효과를 분명히 존재한다.

다만, 서로간의 일 대일 네트워크 연결은 10G 이상급의 속도를 가지고 있어야 효과를 볼 수 있다. 이왕이면 네트워크 이중화 구성으로 하는것이 더욱 안전하다.

결국에는 Web서버 DB서버를 분리하게 되면 추가적으로 네트워크 통신을 해야되는 상황이 생기고, 또한 빠른 네트워크 구축 환경이 필요하다.

아까도 이야기 했듯이 동일 네트워크상 구성이 필요한데, 내부네트워크로 1:1 다이렉트 연결을 하는것을 가장 추천한다. 그럼 어느정도 성능향상을 효과를 기대할 수 있다.

그림 처럼 이런식의 구성이 된다고 볼 수 있다. 네트워크 스위치 속도가 잘 나오는 제품을 사용한다면 문제 없다. 리눅스서버든 윈도우 서버는 구성은 비슷하기 때문에 개념을 잘 알고 있어야 된다.