Trabalho apresentado na 11ª Mostra da Produção Universitária, da FURG. Esse trabalho apresenta o começo da pesquisa, na qual foi pesquisado um benchmark que gerasse carga realista, para testes em um servidor.
1. Geração de Carga para Processamento Online
de Transações usando TPC-C
R O D R IGO H ER PIC H M Ü L L ER *
PR O F. M S. O D O R IC O M EN D IZ ABAL
* BO L SISTA D O PR O G R AM A D E ED U C AÇ ÃO T U TO R IAL C IÊN C IAS
C O M PU TACIONAIS - F U R G
2. Sumário
1. Introdução
2. Benchmarks
3. Conselho TPC
4. Padrão TPC-C
5. Benchmark-SQL
6. Resultados e Trabalhos Futuros
5/12/2012 11ª MOSTRA DA PRODUÇÃO UNIVERSITÁRIA 2
3. 1. Introdução
● Sistemas distribuídos devem apresentar alta disponibilidade e desempenho
aceitável;
● Em altas cargas de trabalho, isso se torna um desafio;
● Deve-se definir limites normais de funcionamento, e estratégias para contornar
uma utilização maior do sistema;
● Caso esses limites não forem detectados, pode ocorrer degradação do
desempenho ao usuário.
5/12/2012 11ª MOSTRA DA PRODUÇÃO UNIVERSITÁRIA 3
4. 2. Benchmarks
• São programas usados para medir o desempenho de um sistema computacional, simulando
cargas de trabalhos.
• Resultam em uma métrica, usada para fazer comparativos em diferenças sistemas, utilizados
para o mesmo propósito.
• Podem ser específicos ou gerais.
- Específico: Estimula uma parte específica do sistema operacional. Exemplo: CPU-M
benchmark, HD Tach, entre outros.
- Gerais: Estimulam o sistema como um todo, parte lógica e física, simulando atividades que
são realizadas por usuários reais.
5/12/2012 11ª MOSTRA DA PRODUÇÃO UNIVERSITÁRIA 4
6. 2. Benchmarks (continuação)
• Para que os benchmarks sejam confiáveis, eles devem simular, com precisão, usuários
reais, utilizando o sistema.
• Nesse sentido, surgem consórcios, que definem especificações ao uso de ferramentas de
testes.
5/12/2012 11ª MOSTRA DA PRODUÇÃO UNIVERSITÁRIA 6
7. 3. TPC
• Transactional Processing Perfomance Council (TPC) é uma organização sem fins lucrativos que
define padrões e diretrizes para o uso consistente de benchmarks.
• É formado por representantes de diversas empresas de tecnologia.
• Considerado um dos mais confiáveis e, por isso, adotado por muitos fabricantes, tanto de
hardware quanto de software.
5/12/2012 11ª MOSTRA DA PRODUÇÃO UNIVERSITÁRIA 7
8. 3. TPC (continuação)
Algumas empresas que compõem o TPC
5/12/2012 11ª MOSTRA DA PRODUÇÃO UNIVERSITÁRIA 8
9. 3. TPC (continuação)
• Padrões definidos pelo TPC:
Nome Descrição
TPC-E (novo padrão) Benchmark para On-line Transaction Processing (OLTP)
TPC-H Benchmark para suporte a decisões
TPC-Energy Benchmark de consumo de energia elétrica
TPC-C Benchmark que analisa a capacidade computacional como um todo,
populando as tabelas de um banco de dados.
5/12/2012 11ª MOSTRA DA PRODUÇÃO UNIVERSITÁRIA 9
10. 4. TPC-C
• Um dos padrões mais antigos do consórcio, sendo muito aceito pela indústria.
• Através da inserção de dados em um banco de dados, mensura a capacidade do sistema
computacional.
• Sua métrica é chamada transaction per minute (tpm-C), que mede quantas transações são
feitas por minutos.
• O padrão TPC-C somente define as especificações do benchmark, mas não faz uma
implementação padrão.
5/12/2012 11ª MOSTRA DA PRODUÇÃO UNIVERSITÁRIA 10
11. 4. TPC-C
• Define quais tabelas deverão existir no banco de dados, bem como seus campos, chaves
primárias, chaves estrangeiras e relacionamento entre elas.
• Transações ACID (Atomicidade, Consistência, Isolamento e Durabilidade), que garante a
integridade dos dados existentes.
• Diferentes tipos de operações: compra, cancelamento da ordem, verificação do estoque, status
da entrega.
5/12/2012 11ª MOSTRA DA PRODUÇÃO UNIVERSITÁRIA 11
12. 5. BenchmarkSQL
• Opção open-source ao padrão TPC-C.
• Escrito em JAVA, usando a API JDBC para conexão ao banco de dados.
• Conecta-se a qualquer banco que tenha um driver JDBC (MySQL, SQL Server, Oracle
Database, Firebase, entre outros).
• Define-se o número de transações / s com os seguintes critérios de parada:
- Número máximo de transações;
- Tempo máximo atingido.
5/12/2012 11ª MOSTRA DA PRODUÇÃO UNIVERSITÁRIA 12
13. 5. BenchmarkSQL (continuação)
• O software apresenta a média de transações efetuadas até aquele momento, bem como o uso da
memória que o mesmo está ocupando.
• A inserção pode ser feita de forma local (banco de dados no mesmo computador) ou remotamente
(acessando um servidor, por exemplo).
- Pode-se utilizar mais de um computador acessando o banco de dados, visando chegar ao limite do
servidor.
• Possível controlar quantas threads serão executadas simultaneamente.
• Possível definir a frequência com que diferentes operações executam
(compra, cancelamento, verificação do estoque...).
5/12/2012 11ª MOSTRA DA PRODUÇÃO UNIVERSITÁRIA 13
15. 6. Resultados e Trabalhos Futuros
• Com o uso do Benchmark-SQL, foi possível verificar um limite médio de transações realizadas
em um computador, de uso cotidiano.
• Pretende-se realizar testes, juntamente com monitores de desempenho, para verificar onde
ocorre o gargalo do sistema (CPU, memória, I/O bound).
5/12/2012 11ª MOSTRA DA PRODUÇÃO UNIVERSITÁRIA 15