Definindo o hardware para o Firebird
Este tutorial tem o objetivo de relatar o funcionamento do hardware em relação ao Firebird, para servir como guia na definição de arquitetura para um servidor de banco de dados.
Basicamente o sistema gerenciador de banco de dados Firebird utiliza 3 hardwares de um computador, são eles:
1) Processador
É responsável por executar uma tarefa, por exemplo “Buscar os dados do cadastro de clientes”.
Basicamente quanto maior for a velocidade de processamento (GHz) mas rápido uma determinada tarefa será processada, e quanto mais núcleos um processador tiver, mais tarefas simultâneas poderá executar, ou seja, irá atender mais rapidamente às solicitações recebidas.
O Firebird trabalha diferente nas suas arquiteturas, quanto a capacidade de executar tarefas simultâneas, ou seja, usar mais de 1 núcleo, vamos entender melhor isso nas características de cada arquitetura.
2) Memória RAM
É a memória primária, de acesso rápido, que não guarda informações, apenas as mantêm enquanto o computador estiver ligado, ou até que o sistema operacional faça a reciclagem (gerencie e identifique a ociosidade, liberando a informação).
O processador acessa essa memória para responder às solicitações de leitura e escrita. Caso uma informação ainda não esteja na memória RAM, ela será buscada no HD e inserida na RAM, portanto se a informação já está na memória RAM, o processador vai conseguir responder mais rapidamente a tarefa solicitada.
O Firebird mantém um “Cache (dados em memória)” por “página de dados”, dessa forma quando um usuário solicita a informação X que está na página 1, a mesma é carregada do HD para o Cache na memória RAM, dessa forma se outro usuário solicitar a informação Y que também está na página 1, o Firebird irá responder mais rapidamente, pois não precisa buscar os dados da página no disco, carregar para a memória RAM e depois fazer a leitura.
3) HD
É a memória física, responsável por guardar as informações, será acessada sempre que necessário gravar ou ler alguma informação. Também é considerada a memória secundária, pois o acesso tanto de leitura, quanto de escrita, ocorre primeiro na memória RAM e depois no HD (se necessário).
Como vimos no item anterior, uma tarefa solicitada pelo Firebird não acessa diretamente o HD, porém isso não significa que ele tenha menos importância que a memória RAM, esse hardware também tem muita influência no desempenho, pois quanto maior for sua velocidade de leitura/escrita, mais rápido vai entregar ou gravar a informação. E também quanto mais solicitações de leitura/escrita receber, mais irá demorar para responder.
Conclusão
Levando em consideração os 3 principais hardwares citados acima, podemos concluir que quanto maior a capacidade, melhor o Firebird irá funcionar, porém não é bem assim na prática, o que acontece é que precisamos configurar a arquitetura correta para o ambiente, e definir o uso que o Firebird irá fazer do hardware, de acordo com a capacidade do mesmo e a necessidade do cliente.
Mas já podemos relacionar alguns fatores importantes na definição do hardware para se obter melhor desempenho:
- Considere usar uma máquina dedicada ao banco de dados, ou seja, não tenha outros softwares instalados, não utilize essa máquina com um terminal para usuário. Esse ponto é extremamente importante e precisamos estar ciente de que os hardwares são gerenciados pelo sistema operacional, portanto se tivermos outros softwares instalados, e/ou usuários utilizado a máquina como um terminal, teremos concorrência de hardware, e o sistema operacional terá que balancear a carga de trabalho do processador, além de gerar mais operações de leitura/escrita na memória RAM e HD.
- Utilize um sistema operacional sem ambiente gráfico, Linux por exemplo, que utiliza menos memória, e menos processamento;
- Utilize HD com arquitetura SSD, que pode ser 10 vezes mais rápido que o HD comum, e/ou ainda RAID (verifique as diferentes formas de operação e considere usar SSD também nesse sistema);