IIS 4.0에서는 웹 사이트가 각각 다른 IP 주소에 바인드되었습니다. 즉, 각 사이트에는 고유한 소켓이 있었고, 다른 IP 주소에 바인드된 사이트와는 공유하지 않았습니다. 이러한 소켓은 각 사이트가 시작할 때 만들어지므로, 페이지가 지정되지 않은 메모리(RAM)가 매우 많이 필요합니다. 이렇게 메모리를 많이 사용하면 특정 개수의 사이트가 시작된 후 컴퓨터에서 RAM이 부족하게 될 수 있으므로 한 컴퓨터에서 작성할 수 있는 IP 주소에 바인드되는 사이트 수가 제한됩니다.
IIS 5.0에서는 다른 IP 주소에 바인드되었지만 같은 포트 번호를 공유하는 사이트에서 같은 소켓 집합을 공유하도록 변경되었습니다. 그 결과, 같은 컴퓨터의 IP 주소에 바인드될 수 있는 사이트 수가 IIS 4.0에 비해 늘어났습니다. IIS 5.1에서는 이러한 공유 소켓이 모든 시작된 사이트 간에 유연성 있게 사용되므로 리소스 소모량이 줄어듭니다.
이는 IIS 5.0의 기본 동작입니다. 일반적으로, 이 설정은 수정해서는 안됩니다. 그러나 전용 소켓이 필요한 중요한 사이트의 경우에는 DisableSocketPooling을 TRUE로 설정하여 다시 IIS 4.0 동작으로 되돌릴 수 있습니다. 이러한 변경 사항은 다른 사이트에서 계속 새로운 소켓 풀링 기능을 사용할 수 있도록 사이트 수준에서만 이루어져야 합니다.
다음과 같은 상황에서는 소켓 풀링을 사용하지 않을 수도 있습니다.
소켓 풀링으로 인해 IIS 5.1이 모든 IP 주소를 듣게 되어, 여러 네트워크를 사용하는 보안 도메인에 대한 보안 위험이 생길 수 있습니다. 또한, 대역폭 조절과 성능 조정은 모두 같은 포트(예: 포트 80)에 대해 구성된 모든 웹 사이트에 적용됩니다. 각 사이트별로 대역폭 조절을 사용하거나 성능을 조정하려는 경우에는 각 사이트는 반드시 고유의 IP 주소를 가져야 하며 소켓 풀링을 사용하지 말아야 합니다. 호스트 헤더로 사용하는 웹 사이트는 개별적으로 조정할 수 없습니다
소켓 풀링을 사용하지 않으려면 명령 프롬프트에 다음과 같이 입력합니다.
c:\inetpub\adminscripts\cscript adsutil.vbs set w3svc/disablesocketpooling true
명령 프롬프트 응답입니다.
disablesocketpooling :(BOOLEAN) True