질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

Timeout & keepalive 추가질문

작성자 정보

  • 최우혁 작성
  • 작성일

컨텐츠 정보

본문

 답변감사합니다 -ㅎ

-_-음.. 최초 세션을 맺을때 이루어진다는건 저도 글쓸때 말했었는데요,
제가 뚜렷하게 적어놓질 않았네요
keepalive 라는 용어는 일단 쓰지 않고, 내용적으로 질문을 드릴게요.
서로 대화 초점이 달라질것 같아서..

세션이 맺어지고 웹페이지 하나를 완전히 다운받았다고 합시다.
(클라이언트 측에서) 그런상태로 가만히 두면
아파치 서버의 Timeout 300 구문이 클라이언트를 노리고 있겠죠 -_-
그 300초 만큼의 시간이 지나면 클라이언트-서버간의 접속을 끊어 버려야 되니까
말이죠 -
300초동안 아무런 페이지 요청을 하지 않았고, "연결이 끊어진 뒤에"
클라이언트 측에서 새로운 페이지를 요구 했다고 가정 합시다.

그럼 다시 세션을 맺어야 되는것 아닌가요?(3 way handshake 과정을 다시 거쳐서)

그리고

질문 하나더... 아파치의 자식 프로세스는 한번에 하나의 클라이언트만
상대 합니까? 제말은 '동시에' 여러 클라이언트를 상대하느냐 아니면
한번에 한명의 클라이언트와 대화하되 그것이 끝나면 다른 클라이언트를
상대하느냐 이 뜻이죠..ㅎ

관련자료

댓글 1

막둥이님의 댓글

  • 막둥이
  • 작성일
세션이 종료 되었다면 다시 요청할때 3 way handshake과정을 거쳐서 세션을 수립 하여야 합니다.

300(5분) 이라는 시간을 두는것도 이때문이죠. 네트워크 상황에 따라 적당하게 조절하여 사용합니다.

다시 연결 할때 또 3 way handshake과정을 거쳐야 하니깐 말이죠...

아파치 자식 프로세스는 한번에 하나의 방문자만을 상대 합니다. 클라이언트라는 개념은 아닙니다.

클라이언트에서도 여러 창을 띄워 놓고 접속 할수 있겠죠?

아파치 start를 하면 처음에 대기하고 있는 자식 프로세스들이 있습니다. 설정 값에 따라 다르며

모두 하나의 부모 프로세스에서 파생되어 나온 녀석들입니다. 이 자식 프로세스들이 홈페이지

방문자를 상대 하게 됩니다. 하나의 자식 프로세스가 하나의 방문자를 말이죠. 그런데 이 하나의

자식프로세스가 무한대로 상대 하느냐 아니냐 하는것이 KeepAlive 지시자에

의해 결정 됩니다. KeepAlive On 일때만 MaxKeepAliveRequests 와 KeepAliveTimeout이

적용 되는데 MaxKeppAliveRequests는 하나의 자식 프로세스가 하나의 방문자의 요청을 처리

하는 수를 나타납니다 이 수를 다 하면 자식 프로세스는 소멸 하고 새로운 자식 프로세스가

요청을 이어 받습니다. KeepAliveTimeout은 하나의 요청 뒤에 다음 요청시까지의 시간을 의미하며

KeepAliveTimout 15 로 되어 있을시 한 요청뒤 다음요청이 있을때까지 15초가 경과한다면

연결을 끓는 것입니다. 이렇게 하는 이유는 프로세스 관리 차원입니다. 하나의 프로세스가 아무일도

없이 계속 idle상태로 있다면 자원의 낭비가 심할수 밖에 없습니다. 한번에 수천명씩 붙은 대형

사이트를 생각 한다면 엄청난 자원이 필요로 하게 될것입니다. 그래서 이 옵션들을 잘 튜닝해서

사용 합니다. 이외에도 다른 옵션들이 있지만 질문과는 동떨어지기에 적지 않습니다.

제 설명에 이상한점 있으시다면 거침없는 태클 환영 합니다

공지사항


뉴스광장


  • 현재 회원수 :  60,099 명
  • 현재 강좌수 :  36,066 개
  • 현재 접속자 :  238 명