Desempenho X Segurança (parte VI)

Escrito por Adriano Corrêa em 10 de setembro de 2008, 08:00h

Nos posts anteriores conferimos recursos de configuração do ambiente ao redor do servidor. Agora trataremos exclusivamente do servidor de banco de dados.

Um servidor de arquivos precisa de velocidade de disco e rede. Um servidor de e-mails precisa de processamento. Já um servidor de acesso remoto precisa de memória para manter os vários usuários conectados. Um servidor de banco de dados precisa priorizar disco, memória, CPU e rede. Qualquer uma das parte que apresenta um gargalo comprometerá a performance do sistema. Além disso, o gargalo de alguma parte do servidor pode estar escondendo um gargalo em outra parte, que aparecerá quando resolvido o primeiro. Logo, a monitoração do hardware deve ser constante.

Todos os sistema operacionais dispõem de ferramentas para monitorar disco, memória e CPU. Para conhecer essas ferramentas, aconselho ler os manuais disponíveis para cada sistema operacional. Aqui será apresentado o que deve ser monitorado.

O primeiro item a ser verificado é memória. Geralmente os demais problemas que um servidor apresenta são causados pela falta de memória. Para isso, vamos conceituar memória.

Memória consiste na área física disponível para a abertura de arquivos, programas ou shared-memory, nomeada como Memória RAM. O espaço disponibilizado em disco não é memória, é Paginação.

A monitoração da memória é muito simples. No momento do dia em que mais se está utilizando o sistema, deverá haver memória suficiente no servidor para suportar todas as conexões, sem necessitar de paginação. Ou seja, a memória ocupada deve ser inferior a memória RAM existente. Se o servidor estiver necessitando de mais memória do que a existente, passará a usar a memória paginada, gerando outro processo conhecido por swapping.

Swapping ocorre quando o sistema operacional precisa alocar algum processo em memória, porém não tem espaço. Nesse momento ele pega um processo da memória e grava-o em disco, no espaço definido para a paginação. Com o espaço em memória liberado, ele carrega o processo que precisa ser executado e o executa. Concluído o processo, o sistema operacional pega a área de memória ocupada por ele, grava na paginação e remove o antigo processo da paginação para a memória, para continuar a ser executado.

Swapping é lento e deve ser evitado. É preferível que a parametrização dos bancos esteja abaixo do indicado e não haver swapping, do que parametrizar o banco adequadamente e gerar um gargalo no servidor. Por isso parâmetros de banco é o último item a ser conferido.

Depois da memória, confira a utilização do disco. Destaco nesse ponto que o importante não é o espaço livre, mas sim o tempo de disco disponível, ou seja, a capacidade que o disco tem de responder as requisições. Quando o disco tiver menos da metade de sua capacidade, recomendo que comece a pensar em como distribuir parte dos bancos de dados para outros discos. A divisão da carga geralmente é um paliativo que resolve o problema.

Esse é um ponto também que se deve optar entre performance e segurança. Apesar de ficar cada vez mais comum a utilização de sistemas RAID 5, esse é o sistema mais lento para se trabalhar com banco de dados. A recomendação é sempre sistemas de RAID 10 (ou 0 + 1), onde ocorre o stripping da informação entre dois discos e então seu espelhamento.

Por último, confira a utilização de CPU. Ela poderá atingir picos de utilização, porém não poderá ficar constantemente a 100% de uso. Se isso ocorrer, ela passa a ser um gargalo. Para esses casos, as soluções possíveis são reduzir processos no servidor, adicionar CPU, ou dividir os processos com mais um servidor.

Para todos os casos, a recomendação é monitorar constante esses recursos.

Categorias: Ambiente | Desempenho

Tags: , , , , ,

Comentar




biuquote
  • Comentário
  • Pré-visualização
Loading