21 de abril de 2005

Geometria dos discos

"Disk subsystem bottlenecks cause more performance problems than server-side CPU or RAM deficiencies, and a poorly designed disk subsystem can leave your organization vulnerable to hardware malfunctions.", in Optimizing Storage for Exchange Server 2003

Primeiro que tudo não se assustem com o título, garanto que não tem nada a ver com a disciplina de Matemática ;-)
O sistema de storage tem tendência a tornar-se o principal foco de estrangulamento num servidor Exchange. Ao preço que está a memória, deixou de ser esta a principal responsável por problemas de desempenho.
A chave para um sistema afinado é um planeamento e desenho adequados. Existe informação muito valiosa disponível na internet, como é o caso do documento referido no início deste post.

Uma melhoria imediata que se pode fazer é alinhar os discos (daí o título de geometria). As partições criadas pelo Windows 200x em discos com mais de 63 sectores por pista começam no sector 64. Como os blocos de informação têm a dimensão de 4096 bytes e cada sector tem 512 bytes, cada 8 blocos lidos ou escritos no disco ocupam 2 pistas (parece confuso, mas não é).
Felizmente a Microsoft disponibiliza uma ferramenta, o Diskpar, que permite alinhar as pistas com os sectores. Com a utilização desta ferramenta consegue-se aumentar o desempenho até 20%. No entanto, o fabricante do sistema de storage (leia-se SAN) deverá ser consultado antes de utilizar o Diskpar. É que em certos casos não haverá qualquer benefício.
Um bom exemplo de informação disponibilizada pelo fabricante é a HP, com o documento: HP StorageWorks Enterprise Virtual Array 5000 and Microsoft® Exchange Server 2003: storage performance and configuration — white paper.

O Diskpar pode ser encontrado no Windows 2000 Server Resource Kit. Com o lançamento do Service Pack 1 do Windows 2003, o Diskpart (note-se o "t") passou a incluir esta funcionalide. A nova sintaxe para criar partições com o Diskpart é:

create partition primary [size=N] [offset=N] [ID={Byte GUID}] [align=N] [noerr]

Claro que se pode continuar a utilizar o Diskpar:

Usage: diskpar [ -i -s ] DriveNumber
-i: query drive layout and partition information
-s: set partition information (only used on raw drive please)

Sem comentários: