병렬 HTTP 요청 제한: Windows 레지스트리 구성 탐색
ThreadPool을 사용하여 수많은 비동기 HTTP 요청을 수행하는 애플리케이션을 최적화하려는 노력의 일환으로, 개발자는 처음에 성능 제약에 직면했습니다. 초기 문제 해결에서는 서버 측의 잠재적인 제한 사항을 해결하려고 했으나 이 방법은 제거되었습니다.
연구에 따르면 동일한 웹 서버에 대한 동시 요청 수에 대해 Windows가 적용하는 잠재적인 제한 사항이 제시되었습니다. 이 동작을 변경하는 방법으로 [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet 설정] 내에서 레지스트리 값 "MaxConnectionsPerServer" 및 "MaxConnectionsPer1_0Server"를 향상시키는 것이 좋습니다. 그러나 기대했던 개선은 실현되지 않았습니다. 참조된 레지스트리 값이 올바르지 않거나 현재 Windows 환경에서는 수정 사항이 더 이상 유효하지 않다는 의혹이 제기되었습니다.
흥미롭게도 ThreadPool의 MaxThreads 설정을 변경해도 애플리케이션 성능에 영향을 미치지 않아 애플리케이션에서 제외되었습니다. 잠재적인 병목 현상. 해당 리소스 모니터 관찰 결과 제한된 TCP 연결이 추가로 확인되었습니다.
접근 방식 수정
자세히 조사한 결과 이 문제는 ServicePoint 클래스에 의해 도입된 제한 사항에서 비롯된 것이 분명해졌습니다. HTTP 작업에 대한 연결을 관리합니다. 각 ServicePoint 개체는 기본적으로 최대 2개의 동시 연결을 지정합니다. 이 제약 조건을 완화하기 위해 개발자는 더 많은 수의 동시 요청을 수용할 수 있도록 "ServicePointManager.DefaultConnectionLimit" 속성을 수정했습니다. 이 조정을 통해 궁극적으로 문제가 해결되어 애플리케이션이 여러 HTTP 요청을 동시에 실행할 수 있게 되었습니다.
위 내용은 내 Windows 애플리케이션에서 동시 HTTP 요청 수를 어떻게 늘릴 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!