Durante o diagnóstico de problemas de desempenho com software de fornecedor que é executado no SQL Anywhere (9.0.2), me deparei com alguns dados interessantes em relação à largura de banda de E / S. De acordo com o manual 9.0.2, a propriedade do banco de dados "CurrIO" mostra "O número atual de I / Os de arquivo que foram emitidos pelo servidor, mas ainda não foram concluídos." No entanto, não está claro qual deve ser esse número, dada a configuração de hardware e / ou a utilização do banco de dados.
Após um pouco de pesquisa, descobri que o manual do SQL Anywhere 10.0.0 entra nessa configuração com mais detalhes em seu capítulo sobre desempenho:
To detect whether I/O
bandwidth is a limiting factor, check
the CurrIO database statistic. If this
statistic is not present on the graph,
click the Add Statistics button and
select CurrIO. Look for the largest
sustained number for this statistic.
For example, look for a high plateau
on the graph; the wider it is, the
more significant the impact. If the
graph has sustained values equal to,
or greater than 3 + the number of
physical disks used by database
server, it may indicate that the disk
system cannot keep up with the level
of database server activity.
Isso está dizendo que, por exemplo, se eu tiver 5 discos no servidor, esse número deve estar idealmente abaixo de 8? O significado deste valor é o mesmo para a versão 9.0.2 como 10.0.0? A razão pela qual eu acho isso difícil de acreditar é que os resultados do comando a seguir estão um pouco fora do meu caso particular:
SELECT db_property ( 'CurrIO' ), db_property ( 'MaxIO' )
O comando acima retorna sobre 900 para o CurrIO e 1150 para o MaxIO. Tenho monitorado esse número por algumas horas e a média é de aproximadamente 950 (graças ao monitor Foxhound do RisingRoad). Essas leituras foram feitas sob o carregamento normal do banco de dados.
A minha largura de banda de E / S é realmente tão inadequada quanto parece, ou estou interpretando mal esses números?
Aqui está a configuração atual do servidor:
SO: Windows Server 2003 R2 de 32 bits
Versão do banco de dados: SQL Anywhere (Adaptive Server Anywhere) 9.0.2.3381
CPU: 4x Intel Xeon Dual Core 3.00GHz
RAM: 26 GB (22 GB alocado para o cache do SQL Anywhere)
HDD (C: /): SO + Localização de Arquivo Temporário
RAID 1
2x 36GB SCSI-320 (15k RPM)
HDD (D: /): Localização do Arquivo DB
RAID 5
4x 73GB SCSI-320 (15k RPM)
HDD (E: /): Arquivo OS Pagefile + localização do arquivo de log (não há registro de espelho)
RAID 5
4x 73GB SCSI-320 (15k RPM)
Notas: O RAID1 e o primeiro RAID5 (D: /) estão no mesmo controlador RAID. Estávamos planejando atualizar o RAID5 com unidades de 146 GB (15k RPM) no RAID10. Essa mudança ajudaria nosso aparente problema de largura de banda de E / S?