Est-ce une bonne pratique d'utiliser la compression NTFS sur les dossiers du journal IIS?

13

Est-ce une bonne pratique d'utiliser la compression NTFS sur des dossiers et des fichiers journaux IIS?

J'ai pu passer de 20 Go à 7 Go en faisant cela. Les journaux IIS sont par jour et ont une taille moyenne de 20 Mo, mais certains jours extrêmes ont 200 Mo.

Je me demande si IIS doit ouvrir tout le fichier en mémoire, forçant NTFS à décompresser 20 Mo (ou 200 Mo dans le cas extrême) à chaque fois? Ou existe-t-il une magie qui permet à IIS d'ajouter du contenu? Quel est l'impact sur le système? Cela pourrait-il devenir un problème si nous augmentons notre trafic?

Dois-je les diviser par heure plutôt que par jour?

Un document officiel de Microsoft à ce sujet? Je n'ai pas pu en localiser un.

Malartre
la source
2
Si vous devez conserver les journaux à long terme, pourquoi ne pas les déplacer? Conservez les journaux de la journée en cours sur le serveur et déplacez / archivez le reste ailleurs. Pourquoi utilisez-vous les journaux de toute façon?
joeqwerty
1
Déplacer, c'est ajouter un autre processus qui peut échouer. J'essayais de BAISER.
Malartre

Réponses:

10

Comme Evan a déjà donné une réponse générale, j'aime répondre à deux de vos sous-questions:

IIS vide-t-il les journaux toutes les X minutes?

http.sys, la partie en mode noyau d'IIS est responsable de la journalisation et il met les données en mémoire tampon avant de les écrire dans les fichiers journaux. Je ne suis pas certain, mais je ne pense pas qu'il effectue le rinçage toutes les x secondes, plus probablement après que son tampon soit plein.

Le fichier entier doit-il être lu lors de l'ajout d'une seule ligne?

Non, NTFS écrit les mises à jour d'un fichier dans son propre cache, puis compresse et ajoute les données de manière asynchrone au fichier. L'écriture dans un fichier compressé n'est pas beaucoup plus lente que dans un fichier non compressé.

Il ne devrait donc pas y avoir de problème avec l'utilisation de la compression NTFS sur les fichiers journaux IIS.

Sources:

Kit de ressources IIS 7, Chapitre 15: Journalisation - Microsoft Press 2008

Windows Internals 6th Edition Part2, Chapitre 12: Systèmes de fichiers Microsoft Press 2012

Peter Hahndorf
la source
Exactement la réponse que je cherchais, @ peter-hahndorf!
Malartre
Fait intéressant, cet article de Microsoft recommande le contraire: 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.question est, quelle est la définition de constamment ?
Zero3
1
@ Zero3 Transaction logging est quelque chose d'un peu différent des journaux IIS. Ce serait le cas où une fonction à l'intérieur de votre programme n'est en fait pas autorisée à retourner avec succès jusqu'à ce qu'une modification transactionnelle ait été rendue durable après avoir été écrite sur le disque, de sorte que les performances de l'application sont directement liées à la vitesse d'écriture de votre disque pour vos journaux de transactions.
NReilingh
@NReilingh Vous avez peut-être raison. En fait, je ne sais pas si IIS écrit dans ses fichiers journaux sync / async. Quoi qu'il en soit, je pense que le point général que soulève l'article (il y a d'autres exemples, comme des dossiers utilisateur avec beaucoup de lectures et d'écritures) est que les E / S lourdes peuvent être un problème avec les dossiers compressés.
Zero3
13

Je compresse mes journaux IIS sur de nombreux serveurs IIS, bien que principalement des serveurs qui hébergent Outlook Web Access / App ou des sites Web à faible volume. Je n'ai aucun problème à le faire, et tout comme les économies d'espace disque.

En général, vous échangez le CPU pour le stockage en prenant cette décision. Si vous êtes lié au processeur pour commencer, ce n'est probablement pas un bon compromis. Pour mes serveurs OWA, qui peuvent augmenter des gigaoctets de journaux par jour (grâce aux appareils ActiveSync), je pense que le compromis est bon.

Le pilote du système de fichiers NTFS gère la compression, il ne modifie donc pas la façon dont IIS écrit dans les fichiers.

Éditer:

Vous êtes également potentiellement en train d'échanger de la bande passante d'E / S et des IOPS. Si votre volume est suffisamment élevé pour que votre journal écrit soit une consommation importante de ressources d'E / S, vous pouvez également constater une baisse de la consommation d'E / S due à l'activation de la compression.

La seule façon de dire comment cela vous affecte est de le comparer vous-même. Prenez une ligne de base avec la compression désactivée puis activée et comparez-les. Il n'y a pas de baguette magique à agiter pour savoir comment cela vous affectera - il y a juste trop de facteurs non déterministes en jeu.

Evan Anderson
la source
1
Battez-moi de quelques secondes ... vous n'avez pas de travail à faire, au lieu de jouer à ServerFault? : p Quoi qu'il en soit, +1. J'ai fait la même chose depuis des lustres et pourtant je n'ai pas de problème à cause de ça.
HopelessN00b
Cette réponse est anecdotique et amusante mais je cherche plus de faits. Je regarde les détails, comme si les journaux de vidage IIS toutes les X minutes et s'il a besoin de lire le fichier entier juste pour ajouter une ligne.
Malartre
@Malartre Ce n'est pas anecdotique, vraiment. Comme mentionné, la compression de fichiers / dossiers NTFS est un compromis - espace disque pour les cycles CPU (et augmentation très minime de l'utilisation de la mémoire). C'est à peu près aussi précis et factuel que possible sans effectuer d'analyse comparative et exécuter de véritables tests sur votre environnement spécifique.
HopelessN00b