É uma boa prática usar a compactação NTFS nas pastas de log do IIS?

13

É uma boa prática usar a compactação NTFS em pastas e arquivos de log do IIS?

Consegui diminuir de 20 GB para 7 GB ao fazer isso. Os logs do IIS são por dia e têm um tamanho médio de 20 MB, mas em alguns dias extremos há 200 MB.

Gostaria de saber se o IIS precisa abrir o arquivo inteiro na memória, forçando o NTFS a descompactar 20 MB (ou 200 MB em casos extremos) a cada vez? Ou existe alguma mágica que permite ao IIS anexar conteúdo? Qual o impacto do sistema? Poderia se tornar um problema se aumentarmos nosso tráfego?

Devo dividi-los por hora em vez de por dia?

Algum documento oficial da Microsoft sobre isso? Não consegui localizar um.

Malartre
fonte
2
Se você precisar manter os logs a longo prazo, por que não movê-los? Mantenha os logs do dia atual no servidor e mova / arquive o restante em outro lugar. Para que você está usando os logs, afinal?
Joeqwerty
1
Mover está adicionando outro processo que pode falhar. Eu estava tentando beijar.
Malartre,

Respostas:

10

Como Evan já deu uma resposta geral, gosto de abordar duas de suas sub-perguntas:

O IIS libera logs a cada X minutos?

http.sys, a parte do modo kernel do IIS é responsável pelo log e armazena em buffer os dados na memória antes de gravá-los nos arquivos de log. Não tenho certeza, mas acho que ele não libera a cada x segundos, provavelmente depois que o buffer está ficando cheio.

O arquivo inteiro precisa ser lido ao adicionar uma única linha?

Não, o NTFS grava atualizações em um arquivo em seu próprio cache e compacta e anexa os dados de forma assíncrona ao arquivo. A gravação em um arquivo compactado não é significativamente mais lenta que em um arquivo não compactado.

Portanto, não deve haver problemas com o uso da compactação NTFS nos arquivos de log do IIS.

Fontes:

IIS 7 Resource Kit, Capítulo 15: Log - Microsoft Press 2008

Windows Internals 6th Edition Part2, Capítulo 12: Sistemas de Arquivos Microsoft Press 2012

Peter Hahndorf
fonte
Exatamente a resposta que eu estava procurando, @ peter-hahndorf!
Malartre,
Curiosamente, este artigo da Microsoft recomenda o contrário: A 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.pergunta é: qual é a definição de constantemente ?
Zero3
1
@ O log de transações Zero3 é algo um pouco diferente dos logs do IIS. É aí que uma função dentro do seu programa não tem permissão para retornar com êxito até que uma alteração transacional tenha se tornado durável por ter sido gravada no disco; portanto, o desempenho do aplicativo está diretamente relacionado à velocidade de gravação do disco nos logs de transações.
NReilingh 11/04
@NReilingh Você pode estar certo. Na verdade, não sei se o IIS grava em seus arquivos de log sync / async. De qualquer maneira, acho que o ponto geral levantado pelo artigo (há outros exemplos, como pastas de usuários com muitas leituras e gravações) é que as IO pesadas podem ser um problema com pastas compactadas.
precisa saber é o seguinte
13

Compacto meus logs do IIS em muitos servidores IIS, principalmente servidores que hospedam o Outlook Web Access / App ou sites de baixo volume. Não tenho problemas em fazer isso e gosto bastante da economia de espaço em disco.

Em geral, você está trocando CPU por armazenamento, tomando essa decisão. Se você está vinculado à CPU, provavelmente não é uma boa escolha. Para meus servidores OWA, que podem gerar gigabytes de logs por dia (graças aos dispositivos ActiveSync), acho que a troca é boa.

O driver do sistema de arquivos NTFS lida com a compactação, portanto, não altera a maneira como o IIS grava nos arquivos.

Editar:

Você também pode trocar parte da largura de banda de E / S e IOPS. Se você tiver um volume alto o suficiente para que suas gravações de log sejam um consumo significativo de recursos de E / S, também poderá haver um declínio no consumo de E / S ao permitir a compactação.

A única maneira de dizer como isso afeta você é compará-lo você mesmo. Pegue uma linha de base com a compactação desabilitada e, em seguida, habilitada e compare-a. Não há uma varinha mágica para acenar para saber como isso afetará você - existem muitos fatores não determinísticos em jogo.

Evan Anderson
fonte
1
Me derrote por alguns segundos ... você não tem trabalho a fazer, em vez de jogar ServerFault? : p De qualquer forma, +1. Eu faço a mesma coisa há muito tempo e ainda tenho um problema como resultado disso.
precisa
Esta resposta é anedótica e divertida, mas estou procurando mais fatos. Estou analisando detalhes, como se o IIS descarregasse os logs a cada X minutos e se fosse necessário ler o arquivo inteiro apenas para adicionar uma linha.
Malartre
@ Malartre Não é realmente engraçado. Como mencionado, a compactação de arquivo / pasta NTFS é uma troca - espaço em disco para ciclos de CPU (e um aumento muito pequeno no uso de memória). Isso é o mais específico e factual possível, sem fazer comparações e executar testes reais em seu ambiente específico.
precisa