Estamos tendo um problema com um de nossos servidores. Quando copiamos arquivos maiores (grandes significa 50 MB e maiores nesse caso), a operação de cópia (C:\ para C:) aplicativo não pode mais retornar resultados do SQL Server, então o aplicativo trava para os usuários).
O Intel RST mostra tudo verde no SMART. Aqui estão as especificações do sistema:
- Servidor: HPE ML10
- Armazenamento: 3x HP 3TB em configuração RAID5
- SO: Windows Server 2012 R2
- Funções de servidor: controlador de domínio, servidor de aplicativos (SQL Server e aplicativo .NET)
- Configurações de armazenamento: Tamanho da faixa: 128 KB, Liberação de buffer de cache de gravação: Ativado, Modo de cache: Desligado, Tamanho dos setores físicos e lógicos: 512 bytes
Eu não sou um especialista em servidor, então não tenho certeza se tenho essas coisas configuradas corretamente. Qual poderia ser o problema aqui?
EDIT: Não sou especialista nessas coisas (desenvolvedor). Então talvez eu esteja fazendo algo simples de errado.
EDIT2: http://imgur.com/a/NNgDY O desempenho de gravação do disco é extremamente ruim. Mas nenhum total trava como quando copio com o Windows Explorer. Acho que o explorador suspenso bloqueia a bomba de mensagens, entupindo o sistema. Uma migração para um RAID1/10 poderia corrigir o problema em suas opiniões?
Se eu interpretar "Cache-Mode: Off" corretamente, é completamente compreensível que o desempenho de gravação seja péssimo. Verifique se copiar / ler do RAID (para rede ou NUL) é um problema ou copiar / gravar no RAID - meu palpite está correto, apenas gravar no RAID é uma dor.
RAID5 é distribuído - cada faixa consiste em (no seu caso) três segmentos: data1, data2 e parity12. Agora, quando alguns dados são gravados na matriz, eles não podem ser gravados em um segmento de dados porque a paridade não corresponderia mais.
Se data1 for gravado/alterado, o controlador precisa:
Assim, sempre que houver uma mudança, as operações do controlador são amplificadas em três! Se eles não puderem ser armazenados em cache, cada gravação resultará em três operações a serem executadas e seu aplicativo precisará aguardar. Com o cache, muitas operações de leitura e gravação podem ser omitidas e o impacto no desempenho será muito menor.
A única exceção a essa amplificação da operação de gravação é quando você grava uma faixa inteira de uma só vez: apenas pegue data1 e data2 do buffer, calcule a paridade12 e grave todos os três segmentos. Isso é uma amplificação de apenas 1,5. No entanto, para poder combinar todos os dados de entrada em faixas completas, você precisa enfileirar os dados. Adivinhe, você precisa de cache novamente.
Em poucas palavras: se você usa RAID5 ou RAID6 você precisa absolutamente de cache - não é um luxo. Muito pouco ou até mesmo nenhum cache prejudicará seu desempenho. Se for um software ou RAID hospedado com cache configurável, reserve pelo menos 512 MB, melhor 1 ou 2 GB e ele "voará". RAID5 com três unidades não será uma maravilha de desempenho, mas pode funcionar bem.
Edit: o HP ML10 G9 possui um controlador Intel RST SATA RAID integrado ao chipset - host RAID. Dependendo de qual modelo e controlador exato é usado, o cache deve ser configurável em algum lugar.