31 de outubro de 2005

Optimização de storage: um caso real

A componente de storage desempenha um papel crítico numa solução de Exchange Server 2003. Em servidores back-end o subsistema de discos é geralmente a primeira causa de estrangulamentos de desempenho, pelo que é aconselhável um planeamento cuidado. A Microsoft disponibiliza um documento com instruções detalhadas de optimização das unidades de storage: Optimizing Storage for Exchange Server 2003.
Para provar que estas recomendações podem realmente fazer a diferença, deixem-me contar-vos uma pequena história:

Há pouco tempo realizei, juntamente com um colega meu, uma intervenção num cliente que estava com problemas na sua infra-estrutura de correio electrónico. Os utilizadores queixavam-se de lentidão no Outlook, sendo frequentes as mensagens "Outlook is trying to retrieve data from the Microsoft Exchange Server".
Após uma análise do servidor Exchange de produção, concluímos que se tratava de um estrangulamento ao nível do storage.
O próximo passo seria implementar uma nova configuração dos discos, por forma a melhorar o seu desempenho. O servidor de back-end era um HP ProLiant DL380 G3 com discos internos (DAS). Realizámos alguns cálculos que confirmaram que a configuração RAID 5 (3 discos) utilizada não era adequada e que uma alteração para 4 discos em RAID 0+1 seria suficiente para suportar a carga em altura de pico.
Também decidimos alterar a cache do controlador de storage para write-back. O servidor em questão vem de fábrica com uma controladora SmartArray 5i Plus. Infelizmente para poder suportar cache write-back necessita de uma bateria adicional. Uma vez que os ganho de desempenho podem ser tão impressionantes (como veremos mais à frente), julgo que seria recomendável que a HP modificasse a sua política para que esta bateria viesse incluida por defeito.
O cliente estava com uma latência de escrita de 100 ms, quando o valor recomendado deve ser inferior a 20ms. A imagem seguinte ilustra os contadores de disco medidos com a configuração original.


Após a alteração do nível de RAID com a adição de um novo disco, os ganho de desempenho foram imediatos, tendo a latência diminuido para 25ms (não disponho de nenhuma imagem para ilustrar). Mas o que realmente nos impressionou foi o efeito da cache write-back. Após a instalação da Battery Backed Write Cache (BBWC) Enabler, a latência de escrita baixou para uns espectaculares 3ms. Aqui fica a prova:

Qual é então o moral desta história?
  • O storage deve ser dimensionado primeiro para o desempenho e só depois para a capacidade;
  • A optimização e cache write-back fazem realmente a diferença;
  • Não é preciso comprar storage cara (SAN) para fazer 1.500 utilizadores felizes.

Aqui ficam mais uns links interessantes sobre o assunto:

Sem comentários: