Чи корисно використовувати компресію NTFS у папках журналу IIS?


13

Чи корисно використовувати компресію NTFS у папках та файлах журналу IIS?

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

Мені цікаво, чи повинен IIS відкривати весь файл в пам'яті, примушуючи NTFS щоразу знімати 20MB (або в крайньому випадку 200MB)? Або є якась магія, яка дозволяє IIS додавати вміст? Який вплив на систему? Чи може це стати проблемою, якщо ми зробимо наш трафік?

Чи слід розділяти їх на годину замість дня?

Будь-який офіційний документ Microsoft про це? Я не зміг його знайти.


2
Якщо вам потрібно довго підтримувати журнали, чому б не перемістити їх? Зберігайте журнали поточного дня на сервері, а решту переміщуйте / архівуйте десь в іншому місці. Для чого ти взагалі використовуєш журнали?
joeqwerty

1
Переміщення додає ще один процес, який може закінчитися невдачею. Я намагався KISS.
Малартр

Відповіді:


10

Оскільки Еван вже дав загальну відповідь, я хотів би звернутися до двох ваших підзапитів:

Чи промиває IIS журнали кожні X хвилин?

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

Чи потрібно читати весь файл, додаючи один рядок?

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

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

Джерела:

Набір ресурсів IIS 7, глава 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.Питання в тому, що таке визначення постійно ?
Zero3

1
@ Zero3 Журнал транзакцій дещо відрізняється від журналів IIS. Ось де функція у вашій програмі насправді не дозволяє повертатися з успіхом до тих пір, поки зміна транзакцій не стане довговічною, записаною на диск, тому продуктивність програми безпосередньо пов'язана зі швидкістю запису вашого диска для журналів транзакцій.
NReilingh

@NReilingh Ви можете мати рацію. Я фактично не знаю, чи пише IIS у свої файли журналу sync / async. Так чи інакше, я думаю, що загальний пункт, який ставить стаття (є й інші приклади, наприклад, папки користувачів з великою кількістю читання і записів), полягає в тому, що великий IO може бути проблемою зі стислими папками.
Zero3

13

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

Як правило, ви торгуєте процесором для зберігання, приймаючи це рішення. Якщо ви маєте на увазі процесор, для початку це, мабуть, не є гарним компромісом. Для моїх серверів OWA, які можуть вирощувати гігабайтити журналів за день (завдяки пристроям ActiveSync), я вважаю, що компроміс є хорошим.

Драйвер файлової системи NTFS обробляє стиснення, тому він не змінює спосіб запису IIS у файли.

Редагувати:

Ви, можливо, також торгуєтеся деякою пропускною здатністю вводу-виводу та IOPS. Якщо ви досить великий обсяг, який записує ваш журнал, - це значне споживання ресурсів вводу / виводу, ви також можете помітити зниження споживання вводу / виводу від включення компресії.

Єдиний спосіб, коли ви збираєтесь розповісти, як це впливає на вас, - це визначити його самостійно. Візьміть базову лінію з вимкненим стисненням, а потім увімкніть та порівняйте їх. Немає жодної чарівної палички, щоб знати, як це вплине на вас - у грі просто забагато недетермінованих факторів.


1
Побийте мене на кілька секунд ... хіба вам не доводиться працювати, замість того, щоб грати в ServerFault? : p У будь-якому разі, +1. Я робив те ж саме протягом століть, і все-таки в ньому виникли проблеми.
HopelessN00b

Ця відповідь є анекдотичною та веселою, але я шукаю більше фактів. Я розглядаю особливості, як, наприклад, якщо IIS flush журнали кожні X хвилин, і якщо йому потрібно прочитати весь файл, щоб додати один рядок.
Малартр

@Malartre Це насправді не анекдотично. Як уже згадувалося, стиснення файлів / папок NTFS - це компроміс - дисковий простір для циклів процесора (і дуже незначне збільшення обсягу використання пам'яті). Це приблизно якомога конкретніше і фактичніше, не роблячи тестування та не виконуючи фактичні тести у вашому конкретному середовищі.
HopelessN00b
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.