Какова оптимальная настройка сжатия GZIP для IIS?

StackOverflow https://stackoverflow.com/questions/282650

  •  08-07-2019
  •  | 
  •  

Вопрос

Вы можете установить HcDynamicCompressionLevel где угодно от 0 до 10. Я слышал, что 10 плохо (высокая загрузка процессора), но какое магическое число работает лучше всего?

Это было полезно?

Решение

Я обнаружил, что установка этого параметра на 8 дает довольно хорошую скорость сжатия без чрезмерной нагрузки на сервер. Это будет зависеть от загрузки вашего сервера и спецификации.

Другие советы

Установки от 5 до 9 для динамического сжатия DO фактически увеличивают нагрузку на процессор. Статическое сжатие происходит только один раз (до тех пор, пока файл не будет повторно кэширован), и вы можете установить высокое статическое сжатие.

В этой углубленной статье рекомендуется 4 для динамического сжатия и 7–9 для статического сжатия . Статья подкрепляет эту рекомендацию информацией, которую вы можете прочитать и решить для себя.

http://weblogs.asp.net/owscott/archive/2009/02/22/iis-7-compression-good-bad-how-much.aspx

Небольшие динамические страницы могут выиграть от более высоких настроек динамического сжатия, так как нагрузка на ЦП увеличивается с большими файлами. При размере около 200 КБ вы захотите рассмотреть более низкую динамическую настройку для страниц. Также обратите внимание, что высокие параметры динамического сжатия увеличивают время получения первых байтов от каждого запроса страницы. Эти факторы поддерживают использование более ограниченного значения 4 для динамического сжатия.

Еще раз, статические ресурсы могут использовать высокое значение, потому что только первый запрос влияет на загрузку процессора и время ожидания клиента. Тем не менее, если вы обслуживаете много больших статических ресурсов, статическое сжатие также не окупится, потому что ваш кеш заполнится и начнет вытеснять ресурсы; таким образом, сжатые ресурсы не выиграют от повторного обслуживания из кэша.

ПРИМЕЧАНИЕ. Параметр '10' отсутствует.

Еще две вещи, которые следует учитывать:

Элемент httpCompression в ваших файлах .config имеет параметры, которые отключают сжатие при слишком высокой загрузке ЦП:

dynamicCompressionDisableCpuUsage="90"
dynamicCompressionEnableCpuUsage="80"

staticCompressionDisableCpuUsage="100"
staticCompressionEnableCpuUsage="80"

Параметр EnableCpuUsage повторно включает сжатие, когда нагрузка на процессор падает ниже указанного значения.

Другой параметр отключает сжатие для небольших файлов:

minFileSizeForComp="2700"

IIS 7.5 поднял минимальный размер файла для сжатия с 256 байтов в IIS 7.0 по умолчанию до 2700 байт после того, как понял, что некоторые сжатые файлы были больше, чем исходные. Я не знаю, лучше ли 2700 байт, но, поскольку IP-пакет может иметь разумную длину около 1400 байт, этот параметр предотвратит сжатие файлов менее двух пакетов. Я бы хотел провести реальное тестирование или прочитать совет эксперта, прежде чем произвольно оспаривать решение Microsoft о повышении этого параметра.

10 было плохо, когда процессоры были на два порядка медленнее, чем сейчас. Алгоритм gzip довольно быстр в отношении алгоритмов сжатия в наши дни, поэтому я бы установил его на 10 и посмотрю, что произойдет.

Мне кажется, это действительно будет зависеть от вашей ситуации. Если вы обслуживаете много больших файлов и у вас есть запас ресурсов процессора, то большее число будет лучше. Однако, поскольку у вас больше одновременных подключений, файлов меньшего размера и менее мощного процессора, меньшее число будет лучше.

В компании, в которой я работаю, динамическое сжатие для ASPX и динамически сгенерированные javascript / css и страницы, похоже, загружаются дольше. Мы попытались установить уровень сжатия до 1 и макс. Процессор 90%, но все равно хуже, что без сжатия. Является ли мой

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top