2013-07-19 2 views
2

이 MSDN 문서 Use AppCmd.exe to Configure IIS at Startup에 따라 Azure에서 내 웹 API 용 JSON 압축을 구성했습니다.JSON 콘텐츠 압축이 Azure WebRole을 사용하여 얼마 후 작동하지 않습니다.

필자는 필자의 역할을 게시하고 테스트를 시작하며 모두 Fiddler에 따른다. 여기

GET http://x.cloudapp.net:8080/api/xyz HTTP/1.1 
Accept: application/json 
Host: x.cloudapp.net:8080 
Accept-Encoding: gzip 

는 예를 들어 응답 헤더입니다 : 여기

는 예를 들어 요청 헤더입니다 불과 몇 웹 API 나중에 호출

HTTP/1.1 200 OK 
Cache-Control: no-cache 
Pragma: no-cache 
Content-Type: application/json; charset=utf-8 
Content-Encoding: gzip 
Expires: -1 
Vary: Accept-Encoding 
Server: Microsoft-IIS/8.0 
X-AspNet-Version: 4.0.30319 
X-Powered-By: ASP.NET 
Date: Thu, 18 Jul 2013 22:27:38 GMT 
Content-Length: 2472 

(추천 초 후에) 모든 응답은 더 이상 없다 압축.

요청 헤더 :

GET http://xyz HTTP/1.1 
Accept: application/json 
Host: sp-test-server2012.cloudapp.net:8080 
Accept-Encoding: gzip 

응답 헤더 :

HTTP/1.1 200 OK 
Cache-Control: no-cache 
Pragma: no-cache 
Content-Type: application/json; charset=utf-8 
Expires: -1 
Server: Microsoft-IIS/8.0 
X-AspNet-Version: 4.0.30319 
X-Powered-By: ASP.NET 
Date: Thu, 18 Jul 2013 22:27:44 GMT 
Content-Length: 16255 

참고 제 답변 누락 컨텐트 인코딩.

그래서 나는 압축 된 몇백 건의 ​​호출을 얻었고 그 다음 대부분의 나머지는 나머지는 압축이 풀렸다. 때때로 나는 다른 응답이 압축 된 것을 볼 수 있습니다. 또는 테스트를 잠시 중단했다가 다시 시작하면 압축이 다시 시작됩니다.

IIS 8에서 압축이 '조절'되었습니까? CPU가 거의 초과되면 IIS가 압축을 중지합니까?

내 WebRole을 Azure에서 모니터링 할 때 내 부하 테스트 중에 CPU 사용이 90 %를 초과 할 수 있습니다. 결과에 대한 압축 부족과 상관 관계가 있는지 여부는 알기 어렵습니다. 메모리 사용량은 전혀 문제가되지 않습니다.

더 신뢰할 수 있고 예측 가능합니다.

답변

3

음, 분명히 어제 Google Fu가 실패했습니다. 오늘 답변을 찾았으며 IIS가 CPU 사용량에 따라 동적으로 내용을 압축할지 여부는 사실입니다. HTTP Compression

동적 압축을 제어하는 ​​두 가지 설정이 있습니다. 하나는 비활성화되었을 때 지정합니다 : dynamicCompressionDisableCpuUsage, 기본값은 90 %입니다. 또 다른 옵션은 다시 활성화 될 때를 지정합니다 dynamicCompressionEnableCpuUsage, 기본값은 50 %입니다.

당신이 배운다.

관련 문제