2013-07-19 4 views
2

У меня сжатие JSON настроено для моего веб-API в Azure, следуя этой статье MSDN Use AppCmd.exe to Configure IIS at Startup.Контент сжатия 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 

Вот заголовок пример ответа:

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 

Только несколько Web API вызовы позже (например, 6 секунд) все ответы уже не сжат.

заголовок запроса:

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 

Примечание недостающее Content-Encoding во втором ответе.

Таким образом, я получаю несколько сотен вызовов, которые сжимаются, а затем больше всего остальное несжаты. Время от времени я вижу, что другой ответ сжат. Или, если я прекратил тестирование некоторое время, а затем возобновить, кажется, что сжатие начинается снова.

Сжатие в IIS 8 «дросселировано» или что-то в этом роде? Скажем, если CPU почти полностью отключен, IIS перестанет сжиматься?

При мониторинге моего WebRole в Azure использование моего процессора может превышать 90% во время моего тестирования большой нагрузки. Трудно сказать, коррелирует ли это с отсутствием сжатия результатов. Использование памяти не является проблемой вообще.

Я бы хотел (а) быть более надежным и прогнозируемым!

ответ

3

Ну, по-видимому, вчера мой Google Fu провалил меня. Я нашел ответ сегодня, и это правда, что IIS будет или не будет динамически сжимать контент на основе использования ЦП. HTTP Compression

Есть две настройки, которые управляют динамическим сжатием. Один указывает, когда он отключен: dynamicCompressionDisableCpuUsage, по умолчанию 90%. Другой указывает, когда он включен повторно dynamicCompressionEnableCpuUsage, по умолчанию 50%.

То, чему вы учитесь.

 Смежные вопросы

  • Нет связанных вопросов^_^