Benchmark de performance em Bancos de Dados Oracle com o Swingbench
Introdução
Vou apresentar rapidamente neste artigo, uma ferramenta muito interessante que estou utilizando para executar benchmark de performance em Bancos de Dados Oracle, o Swingbench. Swingbench é um software livre que foi desenvolvido em Java por Dominic Giles (especialista em Banco de dados da Oracle UK), projetado para executar e monitorar cargas de dados em Bancos de Dados Oracle 10G e 11G, instâncias standalone ou RAC. Ele pode ser instalado em Windows, Linux e vários outros sistemas operacionais e possui funcionalidades para simulação de 4 tipos de aplicações, entre elas a de Entrada de Pedidos, que funciona bem no Oracle 11G e que será apresentada neste artigo.
Para baixar o Swingbench, entre em http://www.dominicgiles.com/downloads.html. Após baixá-lo, se o SO da máquina for Linux, faça a instalação conforme as instruções do link http://www.dominicgiles.com/installation.html. Se o SO for Windows, substitua no roteiro do link anterior, os processos necessários para efetuar a instalação do Java (se não houver instalação prévia) e configure as variáveis de ambiente JAVAHOME e SWINGHOME apontando para os diretórios indicados no link.
Para usar a ferramenta é necessário criar antes da primeira utilização, os objetos de BD que serão utilizados para efetuar os testes. Para executar a instalação e iniciar os testes, leia e execute o que está descrito no link http://www.dominicgiles.com/simplebenchmark.html. O script oewizard deverá ser executado uma única vez para criar os objetos de BD. Após a criação destes objetos, execute o script swingbench para inicializar a aplicação e permitir o início dos testes de performance.
Eu estou utilizando este software para comparar performance de servidores de desenvolvimento, homologação e produção que eu administro e também utilizarei futuramente para medir performance quando houver upgrade de hardware de servidor de BD ou quando for efetuada uma migração de versão de BD.
Os principais indicadores de peformance que o Swingbench fornece e que eu acho que são os mais interessantes para efetuar as comparações de peformance, são: Average TPM (média de transações por minuto) e Average TPS (média de transações por segundo). Segue abaixo o valor do indicador Average TPM dos BDs em que eu fiz os testes por um tempo de 2 minutos(configurável na ferramenta) simulando 15 sessões de usuários concorrentes, seguidos por imagens contendo todos os indicadores que a ferramenta disponibiliza em um gráfico de visão geral:
1- Produção (Oracle 10g): 657 (ver imagem 1);
2- Homologação (Oracle 10g): 618 (ver imagem 2);
3- Desenvolvimento (Oracle 11g): 684 (ver imagem 3).
Imagem 1 – Teste de performance do servidor de Produção
Imagem 2 – Teste de performance do servidor de Homologação
Imagem 3 – Teste de performance do servidor de Desenvolvimento
Conclusão
A ferramenta Swingbench é uma ótima opção para fazer benchmark de performance entre BDs distintos e até mesmo para comparar a performance de um BD, contemplando o estado “antes” e “depois” de alguma alteração ou atualização.
Nos testes que eu fiz, o servidor de desenvolvimento foi o que apresentou melhor performance, porém, ressalto que ele é o único que na data em que eu escrevi este artigo (14/11/2011), havia sido atualizado para a versão 11g do Oracle Database (ainda não sei se isso influenciou na performance) e que os BDs de desenvolvimento e homologação estavam ociosos no momento da realização dos testes. Os testes no BD de produção foram realizados em um período que concorreu com atividades de sessões de usuários de outras aplicações.
Referências