2009-02-06 3 views
0

웹 서버가 하루에 100GB를 제공한다면 10,000 개의 10MB 세션 또는 200,000 개의 500kB 세션에서 이렇게하는 것이 좋을 것입니다.웹 서버를 가장 잘로드하는 방법

이 질문에 대한 이유는 클라이언트가 HTTP의 중간 시작 기능을 사용하여 많은 부분에서 파일을 다운로드 할 수 있도록 콘텐츠를 미러링하는 사이트에 장점, 단점 또는 불만이 있을지 궁금합니다. 서버. (IIRC 조금 토런트 작품처럼 조금)

답변

0

각 세션과 관련된 일부 오버 헤드 - 예를 들어 TCP 연결을 만드는 비용 또는 HTTP 헤더 (아직 100GB에 포함하지 않은 경우) - 표면적으로 더 큰 세션을 사용하는 것이 낫습니다. 또한 클라이언트 관점에서 생각해보십시오. 여러 개의 작은 세션을 사용하여 다운로드를 병렬로 실행하고 콘텐츠를 더 빠르게 얻을 수 있습니다. 따라서 실제 "최상의"설정은 중간 세션 크기 일 것입니다. 물론 제공하는 콘텐츠의 종류 (대용량 파일 또는 작은 파일, 스트리밍 또는 정적) 및 속도가 얼마나 중요하다고 생각하는지에 따라 달라집니다. 아무도 맞는 답이 없습니다.

+0

그래서 서버에는 도움이되지 않지만 비즈니스에 도움이 될 수 있습니다. – BCS

2

세션의 크기뿐만 아니라 세션의 길이도 중요하다고 생각합니다. 200,000 개의 작은 세션이 10,000 개의 큰 세션보다 짧게 생깁니다. 세션이 완료 되 자마자 리소스를 다시 사용할 수있게됩니다. 세션이 가능한 짧게되도록 최적화 할 것입니다.

단일 서버는 동시에 수백 개의 세션을 초과 할 수 없습니다 (100 - 200은 안전한 번호 임).

+0

Numbers sound right - 광대역 클라이언트는 대략 1 MByte/sec에서 다운로드 할 수 있으므로 이중 GBit NIC에서는 150 MByte/sec를 얻을 수 있습니다. – MSalters

0

100GB/day는 걱정할 필요가없는 숫자입니다. 1MByte/sec를 약간 넘는 평균입니다. 오래된 이더넷을 통해이를 얻을 수 있습니다. 이제 실제 최대 처리량은 10MByte/s보다 훨씬 높습니다. 여전히 현대 서버에서는 전혀 문제가되지 않습니다. 따라서 여러 대의 서버가 필요하다고 생각하지 않아 10MB 다운로드를 분할 할 이유가 없습니다. 단일 서버에서 다운로드하는 경우 10MB 다운로드 도중에 19 개의 연결 해제 및 재 연결 시퀀스를 삽입하는 이유는 무엇입니까?

+0

방금 ​​번호를 선택했습니다. 그것이 걱정 될 때까지 그것을 확대하십시오. – BCS

+0

음, 그런 것들은별로 중요하지 않습니다. 사용자가 지리적으로 분산되어있는 경우 전 세계에 서버를 배치하여 확장 할 수 있습니다. 각 고객은 로컬 서버에서 다운로드 할 수 있지만 여전히 하나뿐입니다. "중간에서 시작"은 장애 조치에 적합하지만 정상적인 경우는 아닙니다. – MSalters

관련 문제