Рекомендуется ли использовать сжатие NTFS в папках журнала IIS?

13

Рекомендуется ли использовать сжатие NTFS в папках и файлах журнала IIS?

Это позволило мне уменьшить объем с 20 ГБ до 7 ГБ. Журналы IIS хранятся в день и имеют средний размер 20 МБ, но в некоторые экстремальные дни - 200 МБ.

Мне интересно, должен ли IIS открывать весь файл в памяти, заставляя NTFS разархивировать 20 МБ (или 200 МБ в крайнем случае) каждый раз? Или есть какая-то магия, которая позволяет IIS добавлять контент? Какое влияние оказывает система? Может ли это стать проблемой, если мы увеличим наш трафик?

Должен ли я разделить их в час, а не в день?

Есть ли официальные документы Microsoft по этому поводу? Я не мог найти один.

Malartre
источник
2
Если вам нужно поддерживать журналы в течение длительного времени, почему бы не переместить их? Храните журналы текущего дня на сервере и перенесите / заархивируйте остальные в другое место. Для чего вы используете журналы в любом случае?
Joeqwerty
1
Перемещение - это добавление еще одного процесса, который может дать сбой. Я пытался поцеловать.
Маларт

Ответы:

10

Поскольку Эван уже дал общий ответ, я хотел бы ответить на два ваших подвопроса:

IIS сбрасывает журналы каждые X минут?

http.sys, часть режима IIS, работающая в режиме ядра, отвечает за ведение журнала и буферизует данные в памяти перед записью их в файлы журнала. Я не уверен, но я не думаю, что он выполняет сброс каждые x секунд, более вероятно, после того, как его буфер заполнится.

Нужно ли читать весь файл при добавлении одной строки?

Нет, NTFS записывает обновления в файл в свой кеш, а затем сжимает и асинхронно добавляет данные в файл. Запись в сжатый файл не намного медленнее, чем в несжатый файл.

Таким образом, не должно быть проблем с использованием сжатия NTFS для файлов журнала IIS.

Источники:

IIS 7 Resource Kit, глава 15: ведение журнала - Microsoft Press 2008

Windows Internals, 6-е издание, часть 2, глава 12: Файловые системы Microsoft Press 2012

Питер Хандорф
источник
Точно ответ, который я искал, @ peter-hahndorf!
Маларт
Интересно, что эта статья Microsoft рекомендует иначе: If you run a program that uses transaction logging and that constantly writes to a database or log, configure the program to store its files on a volume that is not compressed. If a program modifies data through mapped sections in a compressed file, the program can produce "dirty" pages faster than the mapped writer can write them.вопрос в том, каково определение постоянно ?
Ноль3
1
@ Zero3 Регистрация транзакций немного отличается от регистрации в IIS. В этом случае функции внутри вашей программы фактически не разрешается возвращаться с успехом, пока изменение транзакции не станет долговременным благодаря записи на диск, поэтому производительность приложения напрямую зависит от скорости записи на диск для ваших журналов транзакций.
NReilingh
@NReilingh Вы можете быть правы. Я на самом деле не знаю, пишет ли IIS в свои файлы журнала sync / async. В любом случае, я думаю, что общая мысль, которую поднимает статья (есть и другие примеры в ней, например, пользовательские папки с большим количеством операций чтения и записи), заключается в том, что интенсивный ввод-вывод может быть проблемой со сжатыми папками.
Zero3
13

Я сжимаю свои журналы IIS на многих серверах IIS, хотя в основном это серверы, на которых размещены Outlook Web Access / App или веб-сайты с небольшим объемом. У меня нет проблем с этим, и очень нравится экономия дискового пространства.

В общем, вы обмениваете процессор на хранение, принимая это решение. Если вы ограничены процессором, то это, вероятно, не очень хороший компромисс. Для моих серверов OWA, которые могут вырастить гигабайты логов в день (благодаря устройствам ActiveSync), я думаю, что компромисс - это хорошо.

Драйвер файловой системы NTFS обрабатывает сжатие, поэтому он не меняет способ записи IIS в файлы.

Редактировать:

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

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

Эван Андерсон
источник
1
Ударь меня на несколько секунд ... разве у тебя нет работы, вместо того чтобы играть в ServerFault? : p В любом случае +1. Я делал то же самое целую вечность, но в результате у меня возникла проблема.
HopelessN00b
Этот ответ анекдотичен и забавен, но я ищу больше фактов. Я смотрю на особенности, например, очищает ли IIS журналы каждые X минут и нужно ли читать весь файл, чтобы добавить одну строку.
Маларт
@Malartre Это не анекдотично, правда. Как уже упоминалось, сжатие файлов / папок NTFS - это компромисс - дисковое пространство для циклов ЦП (и очень незначительное увеличение использования памяти). Это настолько конкретный и фактический материал, насколько это возможно без проведения сравнительного анализа и проведения реальных тестов в конкретной среде.
HopelessN00b