Geração de Carga para Processamento Online
de Transações usando TPC-C
RODRIGO HERPICH MÜLLER*
PROF. MS. ODORICO MENDIZABAL
* BOLSISTA DO PROGRAMA DE EDUCAÇÃO TUTORIAL CIÊNCIAS COMPUTACIONAIS - FURG
13/04/2023 11ª MOSTRA DA PRODUÇÃO UNIVERSITÁRIA 2
Sumário1. Introdução
2. Benchmarks
3. Conselho TPC
4. Padrão TPC-C
5. Benchmark-SQL
6. Resultados e Trabalhos Futuros
13/04/2023 11ª MOSTRA DA PRODUÇÃO UNIVERSITÁRIA 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.
13/04/2023 11ª MOSTRA DA PRODUÇÃO UNIVERSITÁRIA 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.
13/04/2023 11ª MOSTRA DA PRODUÇÃO UNIVERSITÁRIA 5
2. Benchmarks (continuação)
HD-Tach em execução CPU-M em execução
13/04/2023 11ª MOSTRA DA PRODUÇÃO UNIVERSITÁRIA 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.
13/04/2023 11ª MOSTRA DA PRODUÇÃO UNIVERSITÁRIA 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.
13/04/2023 11ª MOSTRA DA PRODUÇÃO UNIVERSITÁRIA 8
3. TPC (continuação)
Algumas empresas que compõem o TPC
13/04/2023 11ª MOSTRA DA PRODUÇÃO UNIVERSITÁRIA 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.
13/04/2023 11ª MOSTRA DA PRODUÇÃO UNIVERSITÁRIA 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.
13/04/2023 11ª MOSTRA DA PRODUÇÃO UNIVERSITÁRIA 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.
13/04/2023 11ª MOSTRA DA PRODUÇÃO UNIVERSITÁRIA 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.
13/04/2023 11ª MOSTRA DA PRODUÇÃO UNIVERSITÁRIA 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...).
13/04/2023 11ª MOSTRA DA PRODUÇÃO UNIVERSITÁRIA 14
5. Benchmark-SQL (continuação)
13/04/2023 11ª MOSTRA DA PRODUÇÃO UNIVERSITÁRIA 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).