Administração de banco de dados: como funciona a arquitetura de memória do PostgreSQL

Administração de banco de dados: como funciona a arquitetura de memória do PostgreSQL

O universo da administração de banco de dados envolve estudos e muito conhecimento teórico e prático para identificação das melhores alternativas para cada caso. Neste sentido, conhecer mais sobre a configuração de memória de um sistema de gerenciamento de banco de dados (SGBD)  é um ponto fundamental na hora de ajustar o banco de dados que você irá utilizar na sua organização para obter uma melhor performance.

No caso do PostgreSQL, que é tema deste artigo, ele conta com um sistema de cache para armazenamento dos dados disponibilizados para consulta em sua operação. 

Para falar sobre memória e PostgreSQL, vamos antes a alguns conceitos. Continue acompanhando o artigo!

 

O que é a arquitetura de memória do PostgreSQL

Uma das maiores dúvidas neste sentido é a de como identificar quanto de memória deve ser deixado para o sistema operacional e quanto alocar para o banco, por exemplo.

Outra dúvida é se a memória compartilhada é suficiente para a quantidade de usuários e conexões existentes, ou então o que fazer caso haja um grande número de transações no banco de dados utilizado. Para entender melhor como se dão esses processos dentro do PostgreSQL, vamos compartilhar algumas definições. 

A primeira delas é o conceito de memória compartilhada. Este é o valor disponibilizado no buffer para as transições do banco de dados em questão. O valor varia principalmente em função do número de conexões e consultas, e também do nível de complexidade destas. A recomendação de melhores práticas na administração de banco de dados através do PostgreSQL é a de que o valor destinado ao banco não ultrapasse ⅓ da memória RAM disponível.

Existem ainda cálculos que orientam que a memória compartilhada esteja entre 8 MB e 400MB para que se possa manipular os ambientes com segurança. Agora, como fazer para calcular qual o valor ideal para o seu banco de dados?

Alguns parâmetros de bancos de dados orientam que o consumo de um usuário é de, em média, 14,2 KB por conexão feita. Assim, deve-se multiplicar este valor pelo número de conexões necessárias a serem utilizadas e somá-lo ao tamanho do bloco a ser utilizado. Com isso, chega-se ao valor ideal recomendado para a memória compartilhada do banco de dados em questão.

O segundo conceito a ser trabalhado é o de blocos, que são seções de dados definidas a partir das transições e buscas a serem realizadas. Os blocos possuem relação também com a quantidade de páginas que serão exibidas como resultado para as buscas consolidadas. E o terceiro e último conceito que precisamos abordar aqui é o de área de ordenação, que é uma quantidade de memória física disponibilizada no sistema para a realização de consultas por usuários.

Sendo assim, todos os parâmetros dentro da arquitetura de memória do PostgreSQL, estão diretamente relacionados ao tamanho das transações executadas e à área de ordenação disponibilizada.

 

Como otimizar o aproveitamento no PostgreSQL

Pensando ainda no aspecto relacionado à memória, existem muitos profissionais e equipes que consideram o PostgreSQL um sistema lento em alguns testes após sua instalação. No entanto, isso acontece principalmente por conta de uma má configuração da arquitetura de memória que acaba subutilizando a estrutura física do sistema e tornando, sim, o processamento dos dados mais lento.

Vamos explicar agora como promover uma otimização do PostgreSQL pensando principalmente no que se relaciona ao aspecto da memória. Existem no PostgreSQL dois tipos principais de memória principais, que são a memória compartilhada, que já mencionamos brevemente neste artigo, e a memória individual.

A memória compartilhada tem tamanho fixo e é alocada uma única vez, na inicialização do PostgreSQL, e todos os clientes conectados ao banco têm acesso a ela simultaneamente. No caso da memória individual, o tamanho é variável e ela é alocada separadamente para cada conexão realizada ao banco.

A memória compartilhada é a primeira a ser utilizada pelo sistema para consultar informações de interesse. Ao aproveitar melhor seu cache, o PostgreSQL reduz sua necessidade de gerar requisições ao disco rígido, que é uma tarefa que traz maior lentidão ao sistema, e oferece uma performance mais eficiente.

Já a memória individual tem como principal funcionalidade o ordenamento de registros, de modo que é utilizada toda vez que houver esta necessidade no sistema. Para melhorar o desempenho da memória individual a dica é avaliar como está se dando o funcionamento e buscar sempre o entendimento de que quanto maior a memória de ordenamento, menor será o número de arquivos temporários criados e, assim, mais rápida ficará a operação.

Com base nessas informações, o administrador de banco de dados responsável pode configurar  a arquitetura de memória da forma que melhor convier às necessidades daquele sistema.

Existem diversos caminhos para compreender cada vez melhor o universo da administração de banco de dados e as funcionalidades da arquitetura de memória do PostgreSQL.

Para maiores informações sobre administração de banco de dados de uma forma abrangente e para se manter atualizado sobre estas novidades, além de continuar acompanhando este blog, confira nosso calendário de cursos

1 2 votações
Article Rating
Inscrever
Notificar
guest

0 Comentários
Feedbacks em linha
Ver todos os comentários