Fast Web Service #3 어디서 빨라야 하는가. 1
앞서 #2 번에서
어떤것이 빠른것인지 정의 했고
제어가 가능한 다음의 것에 대해서 이야기했다.
고객의 요청이 서버에 도달하는데 걸린시간 + 서버에서 처리하는데 걸린시간 + 처리결과가 도달하는데 걸린시간 + 브라우저에서 데이터를 파싱하고 보여주는 시간
먼저 고객의 요청이 서버에 도달하는데 걸린 시간이라는 항목부터 생각해보자.
현재 웹서비스에서 웹 요청은 tcp/ipv4 위에서 이루어진다.
그러면 당연히 tcp 부터 생각해야한다.
그리고 현재 ip 세상에서 일반적으로 라우터는 mtu 가 1500 이다.
( MTU 를 모른다면 http://en.wikipedia.org/wiki/Maximum_transmission_unit 를 참조 )
그리고 TCP 의 헤더사이즈는 20 byte 이다. 그럼 우리가 한번에 보낼수 있는 데이터는 1480 byte 가 되겠다.
물론 세상의 라우팅은 험란하기 때문에 안전하게 1400 byte 정도가 적절하다 하겠다. ( vpn , wan 가속기 등 변수는 무궁무진하다 , 1460 정도면 충분하지만 혹시 모르니까. )
그럼 다시금 고민을 해보자.
웹요청은 어떻게 되는가?
그림을 한번 보자. http://livehttpheaders.mozdev.org/livehttpheaders.jpg
제일위의 요청 부분이 기본적인 요청이고 다음의 필드들이 추가가 가능하다. http://en.wikipedia.org/wiki/List_of_HTTP_header_fields
물론 위에서 1400 byte 를 이야기 했지만 대부분의 웹에서 처음요청은 tcp window size 내에서 이루어지기 떄문에
일반적으론 크게 상관없다. ( 그게 tcp window size 이내라면 ack 를 받지 않고 일단 보내고 받는다 )
하지만 쿠키가 계속 추가가 되거나 계속 달고 다니도록 프로그래밍을 한다면 그리고
packet loss 가 잦은 지역 혹은 모바일 환경이라면 1400 byte 이내로 모든 요청이 가능하도록 프로그래밍을 해야한다.
그리고 요청양이 작을수록 모든 경우에 유리하다. 대부분의 속도가 중요시되는 웹서비스들은
여러겹의 레이어에 쌓여있다.
보통 L4 -> Web -> Was 정도고 복잡한 경우는 4-8단계까지 내려가는 경우가 있다. 이런 경우까지 고려하자면 무조건 작은 경우가 유리하다.
매우 당연한 이야기다.
( 지금까지 매우 당연한 이야기를 매우 당연하게 하고 있지만 매우 당연하지 않은 대한민국의 현실은 외면하도록 하자. -_- ;; )
댓글
모바일 환경에서도
모바일 환경에서도 MTU가 1400byte 가 확보가 된다는 이론적 해석이 가능할까유? ㅇㅇ?
--
from bzImage
It's blue paper
from bzImage
It's blue paper
다음편 기대하고 있습니다 ^^
다음편 기대할꼐요 ^^ 잘읽었습니다.
---------------------------------------------------------------------------------
C(++)과 php 펄등을 공부하고있습니다.
반갑습니다! 리눅스 :-)
---------------------------------------------------------------------------------
C(++)과 php 펄등을 공부하고있습니다.
반갑습니다! 리눅스 :-)
좋은글 잘 보고
좋은글 잘 보고 있습니다. :)
MTU값을 고려한 처리는 모바일에서라기 보다 극강의 RT를 필요로 하는곳에서 더 절실하다고 봅니다.
예를 들어, 검색 폼에서 사용되는 다이나믹 자동완성 같은 기능들은 RT가 생명인지라 진짜 MTU 사이즈를
고려해서 해줘야 확실한 성능을 보장할수 있죠.
목적을 찾아서... jiNoos
헤더 포함해서 1.4kb란
헤더 포함해서 1.4kb란 말씀이시죠?
--->
데비안 & 우분투로 대동단결!
--->
데비안 & 우분투로 대동단결!
그런데, 웹서비스 말고 사이트 서비스는 개선안하나??
그런데, 웹서비스 말고 사이트 서비스는 개선안하나?? 그동네는(회사명 자체 검열) 사이트 서비스(고객만족도)가 개판5분전이 아니라 그냥 개판이던데. ㅡㅡ
時日也放聲大哭
댓글 달기