[DNS] Round robin 에 있어 질문드립니다.

puppy0023의 이미지

현재 8대의 웹서비스를 돌리고 있음

DNS 서버는 윈도우2003으로 따로 존재하구요...

DNS 서버에서 라운드 로빈 기능을 이용해서 각각의 8대서버에 트래픽을 분산시키고 있음..(클라이언트 8대는 리눅스)

1. 만약 1대의 서버가 하루 천명의 방문자를 처리할 수 있다면 .. 2대를 라운드 로빈으로 돌릴경우. 이론상 2천명을 처리하여야

할 수 있는거 아닌가요? 2배는 아니더라도 70% 이상은 처리능력향상을 기대하였으나.. 실제 향상은 10~20% 밖에 되질 않는

데요.. 도저히 원인을 모르겠습니다... 어떻게 하면 제가 원하는 처리향상을 할 수 있을까요?

L4나 L7 등의 추가적인 장비 없이 구성할 수 있는 방법을 원합니다.

2. DNS 에 Round Robin 을 이용하여 실제 운영되는 서버는 1대이며.. 나머지 2대는 A레코드 IP만 등록을 해놨는데요..

이렇게 할 경우 들어오는 패킷은 3대 나누어 가게 되지 않나요? 물론 2대는 운영되지 않으므로 버리게 되겠지요..

(현재 원하는 구성은 실제 운영되는 서버 1대에 1/3 만 패킷이 들어오도록 하는것입니다....)

헌데.. 실제 운영되는 서버로 전체 트래픽이 1/3 이 되는것이 아니라 약 2/3 가량이 처리되는데요....

왜이렇게 되는지 ..알려주세요.. 라운드로빈이 실제 패킷이 들어오면 순차적으로 1부터 보내주는걸로 알고 있는데. 2번질문

을 하면서 테스트해보니.. 그렇지만은 않더라고요

김정균의 이미지

1. 만약 1대의 서버가 하루 천명의 방문자를 처리할 수 있다면 .. 2대를 라운드 로빈으로 돌릴경우. 이론상 2천명을 처리하여야
 
할 수 있는거 아닌가요? 2배는 아니더라도 70% 이상은 처리능력향상을 기대하였으나.. 실제 향상은 10~20% 밖에 되질 않는
 
데요.. 도저히 원인을 모르겠습니다... 어떻게 하면 제가 원하는 처리향상을 할 수 있을까요?
 
L4나 L7 등의 추가적인 장비 없이 구성할 수 있는 방법을 원합니다.

웹에서 몇명이 사용하느냐 라는 것은 정말 애매한 수치 입니다. 웹에서는 몇명이 사용하느냐가 중요한 것이 아니라, 전체적으로 몇개의 세션이 사용되느냐가 중요한 부분입니다. 즉 1명의 유저가 1000개의 세션을 사용할 수도 있고, 1명의 사용자가 10개의 세션을 사용할 수도 있으니 말이죠. 즉 어떻게 구현을 했느냐에 따라 차이가 발생할 수 있기 때문에 몇 명이라는 것은 기준으로 사용하기에는 불명확 합니다.

2. DNS 에 Round Robin 을 이용하여 실제 운영되는 서버는 1대이며.. 나머지 2대는 A레코드 IP만 등록을 해놨는데요..
 
이렇게 할 경우 들어오는 패킷은 3대 나누어 가게 되지 않나요? 물론 2대는 운영되지 않으므로 버리게 되겠지요..
 
(현재 원하는 구성은 실제 운영되는 서버 1대에 1/3 만 패킷이 들어오도록 하는것입니다....)
 
헌데.. 실제 운영되는 서버로 전체 트래픽이 1/3 이 되는것이 아니라 약 2/3 가량이 처리되는데요....
 
왜이렇게 되는지 ..알려주세요.. 라운드로빈이 실제 패킷이 들어오면 순차적으로 1부터 보내주는걸로 알고 있는데. 2번질문
 
을 하면서 테스트해보니.. 그렇지만은 않더라고요

웹서버에 KeepAlive 가 설정이 되어 있다면 균등 분할은 어렵습니다. 연결된 쪽으로 계속 연결이 될테니까요. KeepAlive 가 On 이라면 사용자의 사용 패턴이나, 페이지 기획의도 (즉 한 페이지에서 오래 머무를 것인지 아니면 바로바로 이동할 것인지 등..)의 영향을 받을 수 있습니다.

puppy0023의 이미지

아 제가 유저라고 표현한건 예를 들어서 표현을 한거구요...

1번에서 궁금한건 서버 한대가 만약 100 세션을 처리한다면 라운드로빈으로 두대를 돌릴경우 이론상으로는 두대 나누어

200세션을처리할수있을거락 생각했는데.. 200은 아니더라도.. 170정도는 생각했는데요 ...

실제 구성해서 적용해보니.... 110 ~ 130 정도만 처리할수있는걸로 나오더라고요...

원인이 궁금합니다....

그리구 2번에서 현재 모든 웹서버의 keepalive 는 off 되어있습니다.

유저가 웹사이트를 접속하게되면 쿠키정보를 로그로 만들어 서버에 남도록 만들어 놨는데.

테스트로 100 유저를 해봤습니다...

그렇게 하면 ... 1/2/3 서버 모두 약 30 ~ 35개의 로그만 저장이 되어 있어야 하는데 ... 2번 3번은 실제 운영하는서버는

없고 a레코드만 추가한 상태라 유저쪽에서는 페이지 오류가 나올테고요.....

근데.. 1번 서버 로그를 확인해보니... 30 ~ 35개가 아니라 약 60개의 로그가 저장이 되어 있었습니다.

그 이유를 모르겠습니다.

김정균의 이미지

테스트 방법이 틀리신 것 같습니다. 일반 유저들이 a record만 할당된 곳으로 접속을 했다면 접속 에러가 발생할 것이고, reload를 하게 된다면 결국 서비스 되는 machine으로 오게 될 테니, 당연히 cookie가 더 남는 건 어쩔 수 없겠죠. 사용자 행동 패턴을 고려하지 않은 테스트 방법이기 때문에 오차가 많이 발생할 수 밖에 없습니다.

KeepAlive 를 하냐 안하냐는, telnet x.com 80 으로 접속해서 reponse header 의 Connection header가 어떤 값을 가지고 있느냐를 확인해 보시면 됩니다.

블루스크린의 이미지

DB 나 파일시스템을 공통으로쓰고 있다면 그쪽이 병목이 될 수 있겠네요

-------------------------------------------------------------------------------
이 댓글(comment)의 수정 및 삭제를 위해 이 글에 답글(reply)을 쓰지 말아 주십시요.
의견이 있으시면 원 글에 댓글(comment)로 써 주세요.

-------------------------------------------------------------------------------
이 댓글(comment)의 수정 및 삭제를 위해 이 글에 답글(reply)을 쓰지 말아 주십시요.
의견이 있으시면 원 글에 댓글(comment)로 써 주세요.

woonuk의 이미지

2번째 질문의 경우에는 사용자단 PC의 DNS Cache가 원인일수도 있을겁니다.
테스트로 100 유저를 해봤다고 언급되어 있는데, 어떤식으로 테스트 하셨나요?
100대 PC에서 웹페이지 접근하기 전에 cmd창에서 ipconfig /flushdns 해준다음
시도한다면 원하는 결과가 나왔을 수도 있을겁니다.

puppy0023의 이미지

제가원하는것도 접속에러가 발생되는 겁니다. reload 는 하지않는다는 가정 으로 테스트 진행을 하였구요 ..

단순히 100 pc 에서 모든 쿠키가 clear 된 상태에서 사이트로 접속시도를 했을때 ...

라운드 로빈으로 5대의 서버가 운영되고 있다면 .. 실제로 운영되는 1대의 서버에 접속된 20대의 피시에선 웹페이지가

정상적으로 보일것이고 나머지 PC들은 웹페이지 오류가 나오겠지요 ... 이게 정상인거 같은데 ...실제로 해보니

그렇지 않고 약 50~60여대의 PC에서 정상적인 웹페이지가 보여졌습니다......왜 원하는 1/N 이 안나오는지...

이유가 정말 궁금하네요..

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.