2010-08-13 2 views
3

웹 서버 (IIS)에서 리소스를 다운로드하기 위해 작은 소프트웨어 구성 요소를 작성하고 있습니다.HTTP 서버에 대한 다중 연결을 열 수 있습니까?

하지만 시스템 성능이 좋지 않은 것처럼 보입니다. 이제는 여러 스레드를 생성하여 웹 서버에 대한 연결 수를 늘릴 계획입니다.

제 질문은 다중 스레드를 사용하여 성능을 향상시킬 수 있습니까? 복용량 웹 서버 이상으로 여러 동시 연결을 생성 할 수 있습니까?

감사

Upul

+0

질문이 명확하지 않은 경우 : "해당 시스템의 성능을 수용 할 수 없습니다 ..."라고 말하면 구성 요소 또는 웹 서버를 실행중인 클라이언트 시스템을 의미합니까? – deostroll

+0

죄송합니다. 나는 내 소프트웨어의 성능 (초당 다운로드 된 문서의 수)을 의미했습니다. 그것은 쿼드 코어 컴퓨터에서 실행 중입니다. 그래서 클라이언트 머신이 병목 현상이라고 생각하지 않습니다. –

+1

서버는 분명히 여러 연결을 처리해야합니다. 그것이 바로 그 때문입니다. 서버에서 수행 할 작업이 있으면 성능이 향상됩니다. 서버가 정적 컨텐츠 또는 간단한 스크립트 만 호스트하는 경우 병목 지점은 서버 시스템 또는 연결입니다. (오케이, 또는 당신의 소프트웨어에있는 어리석은 오류 : P) – naugtur

답변

3

제대로 구성된 모든 웹 서버는 동일한 출처의 여러 연결을 처리 할 수 ​​있어야합니다. 예를 들어, 브라우저는 페이지에서 한 번에 두 개의 이미지를 다운로드 할 수 있습니다.

일부 서버는 하나의 클라이언트에서 허용 할 동시 연결 수에 상한선을 둘 수도 있지만 일반적으로 높은 수입니다. 최대 6 개의 연결을 사용하는 것이 일반적으로 안전합니다.

실제로 성능을 향상 시킬지 여부는 상황에 따라 다릅니다. 인터넷 백본에 매우 빠르게 연결되어 있고 원격 서버에서 얻는 속도가 연결 속도를 이용하지 않는다는 것을 알게되면 많은 상황에서 멀티 스레딩이 속도를 향상시킬 수 있습니다. 속도가 이미 인터넷 연결 속도 또는 원격 서버 연결 속도를 초과 할 경우 아무 것도 할 수 없습니다.

2

웹 서버 동시 연결을 허용 할 수 있습니다. 응용 프로그램 논리가 동일한 클라이언트에 대해 다중 연결을 열지 못하게하지 않으면 응용 프로그램을 여는 데 문제가 없어야합니다. 저의 요점을 더욱 명확히하기 위해, 리소스를 다운로드하기 전에 로그인해야하고 애플리케이션이 여러 개의 동시 로그인을 허용하지 않으면 그곳에서 멈추게 될 것입니다. 보안상의 이유로 동일한 출처에서 많은 연결을 허용하지 않는 응용 프로그램이 있습니다.

관련 문제