È buona norma utilizzare la compressione NTFS nelle cartelle del registro IIS?


13

È buona norma utilizzare la compressione NTFS su cartelle e file di registro IIS?

In questo modo sono riuscito a scendere da 20 GB a 7 GB. I registri IIS sono giornalieri e hanno una dimensione media di 20 MB, ma alcuni giorni estremi ne hanno 200 MB.

Mi chiedo se IIS debba aprire l'intero file in memoria, costringendo NTFS a decomprimere 20 MB (o 200 MB in casi estremi) ogni volta? O c'è qualche magia che consente a IIS di aggiungere contenuti? Qual è l'impatto del sistema? Potrebbe diventare un problema se aumentiamo il nostro traffico?

Devo dividerli all'ora anziché al giorno?

Qualche documento ufficiale Microsoft su questo? Non sono riuscito a trovarne uno.


2
Se è necessario conservare i registri a lungo termine, perché non spostarli? Conservare i registri del giorno corrente sul server e spostare / archiviare il resto da qualche altra parte. Per cosa stai usando i registri?
joeqwerty,

1
Lo spostamento sta aggiungendo un altro processo che può non riuscire. Stavo cercando di KISS.
Malartre,

Risposte:


10

Dato che Evan ha già dato una risposta generale, mi piace rispondere a due delle tue domande secondarie:

IIS scarica i log ogni X minuti?

http.sys, la parte in modalità kernel di IIS è responsabile della registrazione e bufferizza i dati in memoria prima di scriverli nei file di registro. Non ne sono certo, ma non credo che esegua il flushing ogni x secondi, più probabilmente dopo che il buffer si è riempito.

L'intero file deve essere letto quando si aggiunge una singola riga?

No, NTFS scrive gli aggiornamenti in un file nella propria cache, quindi comprime e aggiunge i dati in modo asincrono al file. La scrittura su un file compresso non è significativamente più lenta rispetto a un file non compresso.

Quindi non dovrebbe esserci alcun problema con l'utilizzo della compressione NTFS sui file di registro IIS.

fonti:

IIS 7 Resource Kit, Capitolo 15: Registrazione - Microsoft Press 2008

Internals Windows 6th Edition Part2, Chapter 12: File Systems Microsoft Press 2012


Esattamente la risposta che stavo cercando, @ peter-hahndorf!
Malartre,

È interessante notare che questo articolo di Microsoft raccomanda altrimenti: la 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.domanda è: qual è la definizione di costantemente ?
Zero3

1
@ Zero3 La registrazione delle transazioni è qualcosa di leggermente diverso dai registri IIS. Questo sarebbe dove una funzione all'interno del tuo programma non può effettivamente tornare con successo fino a quando una modifica transazionale non è stata resa duratura dopo essere stata scritta su disco, quindi le prestazioni dell'applicazione sono direttamente correlate alla velocità di scrittura del disco per i registri delle transazioni.
NReilingh,

@NReilingh Potresti avere ragione. In realtà non so se IIS scrive nei suoi file di registro sync / async. Ad ogni modo, penso che il punto generale sollevato dall'articolo (ci sono altri esempi in esso, come le cartelle degli utenti con molte letture e scritture) è che l'IO pesante potrebbe essere un problema con le cartelle compresse.
Zero3,

13

Comprimo i miei registri IIS su molti server IIS, anche se principalmente server che ospitano Outlook Web Access / App o siti Web a basso volume. Non ho problemi a farlo e mi piace molto il risparmio di spazio su disco.

In generale, stai scambiando CPU per l'archiviazione prendendo questa decisione. Se per prima cosa sei legato alla CPU, probabilmente questo non è un buon compromesso. Per i miei server OWA, che possono far crescere gigabyte di log al giorno (grazie ai dispositivi ActiveSync) penso che il compromesso sia buono.

Il driver del file system NTFS gestisce la compressione, quindi non cambia il modo in cui IIS scrive nei file.

Modificare:

Potresti anche scambiare parte della larghezza di banda I / O e IOPS. Se si dispone di un volume sufficientemente elevato che le scritture dei registri comportano un consumo significativo di risorse I / O, è possibile che si verifichi un calo del consumo I / O anche dall'abilitazione della compressione.

L'unico modo per dire come questo ti influenza è confrontarlo da solo. Prendi una linea di base con la compressione disabilitata e quindi abilitata e confrontale. Non c'è una bacchetta magica da agitare per sapere come ti influenzerà, ci sono troppi fattori non deterministici in gioco.


1
Battimi per qualche secondo ... non hai del lavoro da fare, invece di giocare a ServerFault? : p Comunque, +1. Ho fatto la stessa cosa per anni e non ho ancora avuto problemi a causa di ciò.
HopelessN00b

Questa risposta è aneddotica e divertente, ma sto cercando altri fatti. Sto osservando i dettagli, come se i log di flush di IIS ogni X minuti e se fosse necessario leggere l'intero file solo per aggiungere una riga.
Malartre,

@Malartre Non è aneddotico, davvero. Come accennato, la compressione di file / cartelle NTFS è un compromesso: lo spazio su disco per i cicli della CPU (e un aumento dell'utilizzo della memoria molto minore). Questo è quanto più specifico e fattuale possibile senza fare benchmarking ed eseguire test reali sul tuo ambiente specifico.
HopelessN00b
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.