O documento discute o processo de benchmarking, que envolve a realização de testes de desempenho em sistemas computacionais para permitir comparações confiáveis. O benchmarking requer a instalação de ferramentas de medição e a execução de programas-padrão chamados benchmarks para coletar dados sobre a velocidade, throughput e outras métricas. Os resultados dos benchmarks podem ser usados para projetar necessidades de hardware, comparar configurações e identificar gargalos de desempenho.
O documento discute o processo de benchmarking, que envolve a realização de testes de desempenho em sistemas computacionais para permitir comparações confiáveis. O benchmarking requer a instalação de ferramentas de medição e a execução de programas-padrão chamados benchmarks para coletar dados sobre a velocidade, throughput e outras métricas. Os resultados dos benchmarks podem ser usados para projetar necessidades de hardware, comparar configurações e identificar gargalos de desempenho.
O documento discute o processo de benchmarking, que envolve a realização de testes de desempenho em sistemas computacionais para permitir comparações confiáveis. O benchmarking requer a instalação de ferramentas de medição e a execução de programas-padrão chamados benchmarks para coletar dados sobre a velocidade, throughput e outras métricas. Os resultados dos benchmarks podem ser usados para projetar necessidades de hardware, comparar configurações e identificar gargalos de desempenho.
DE SISTEMAS Prof. Msc. Felipe Brito Número (91) 98140-0437 E-mail: felipeandrecb@hotmail.com Experimentação ou Aferição • Muitas vezes o alto nível de abstrações usadas na avaliação de desempenho via modelagem não permite que o sistema seja retratado de forma fidedigna. • Dependendo do contexto, esse grau de precisão tem importância fundamental, o que pode exigir o uso de outra técnica, como a experimentação ou aferição. Motivação para Aferir • A motivação pelo uso da técnica de aferição normalmente se dá quando a exigência por um resultado mais preciso é fator preponderante. • Entretanto, é importante frisar que: • aferir implica haver disponibilidade do sistema, ou de um protótipo dele. • E que a realização de um processo de medição pode eventualmente causar instabilidade no sistema. Motivação para Aferir • Um exemplo bastante comum ocorre quando se tem a necessidade de uma expansão iminente em rede de computadores instalada e em produção. • Nesse caso, pode ser necessário que a administração da empresa em questão requeira projeções, com certo grau de confiabilidade, antes de autorizar qualquer investimento. • Uma das soluções criadas para se realizar medições dentro de um critério padronizado e confiável chama-se benchmarking. Benchmarking • Basicamente, realizar experimentações ou aferir um sistema de forma confiável implica instalar medidores de desempenho. • Estes medidores podem ser tanto de hardware quanto de software. • E se utilizar de processos chamados de benchmarks, para a coleta de dados e apresentação dos resultados. Benchmarking • As métricas dos benchmarks computacionais podem medir rapidez (em qual velocidade a carga de trabalho foi completada), vazão (quantas cargas de trabalho por unidade de tempo foram medidas) e etc. • Um benchmark é um ponto de referência que permite um comparativo de desempenho de acordo com um conjunto de critérios preestabelecidos. • Em computação, benchmark é o ato de executar um programa de computador, um conjunto de programas ou outras operações, a fim de avaliar o desempenho relativo de um objeto, normalmente executando uma série de testes padrões e ensaios nele. Benchmarking • O termo "benchmark" é também comumente usado para os próprios programas (de benchmarking) desenvolvidos para executar o processo. • Normalmente, benchmarking é associado com avaliação de características de performance de um hardware de computador. • Por exemplo, a performance da operação de ponto flutuante de uma CPU, mas há circunstâncias em que a técnica também é aplicável a software. • Benchmarks de software são feitos, por exemplo, em compiladores ou sistemas de gerenciamento de banco de dados. Benchmarking • Em essência, o termo benchmark utilizado na computação tem o mesmo significado do benchmark utilizado no mundo corporativo, já que visa a comparação de mecanismos, processos, objetos e resultados. • Benchmarks são desenvolvidos para usar um determinado tipo de comportamento de um ou mais componentes ou sistema. Benchmarking • Com a evolução das arquiteturas de computadores, ficou cada vez mais difícil comparar a performance de diferentes sistemas de computação somente olhando suas especificações. • Por isso, testes foram desenvolvidos para serem feitos em diferentes sistemas, permitindo que esses resultados possam ser comparados entre as diferentes arquiteturas. Benchmarking • Por exemplo, enquanto os processadores Pentium 4 geralmente operam a frequências de clock mais altas que os processadores AMD Athlon XP. • Isso não necessariamente se traduz como maior poder computacional. • Em outras palavras, um processador AMD Athlon XP mais lento, quanto a frequência de clock, pode ter um desempenho tão bom nos testes de benchmark quanto um processador Intel Pentium 4 operando a uma frequência mais alta. Benchmarking • Existem diversas instituições dedicadas exclusivamente a definir metodologias e soluções de aferição dentro de uma margem de confiabilidade bastante segura. • Um dos exemplos é a Standard Performance Evaluation Corporation (SPEC). • A empresa mantém uma vasta suite de softwares de benchmarking dentre os quais se destacam os CPU, webservers, virtualização, estações gráficas e etc. • Os resultados obtidos são disponibilizados no endereço http://www.spec.org e podem ser usados como parâmetro comparativo. Benchmarking • As interpretações das informações obtidas nesse tipo de medição costumam ser extremamente úteis às instituições, principalmente por refletirem um cenário real. • Com base nelas, pode-se, por exemplo, aplicar políticas diferenciadas para seus QoS (Quality of service), aumentando ou restringindo recursos de grupos de usuários conforme se faça necessário Benchmarking • Um grande desafio ao se medir o desempenho usando a técnica de aferição é minimizar os impactos que eventualmente o próprio mecanismo de medição venha a causar no sistema, distorcendo por vezes o resultado. • Por exemplo, se o objetivo é medir o atraso fim a fim em uma rede de computadores e o dispositivo de medição introduzir algum atraso nessa rede, então é importante analisar se esse incremento não irá comprometer o resultado como um todo. Benchmarking • Um exemplo de software de benchmark gratuito e bastante popular é o PC Wizard. • Nele, as informações de seu computador são coletadas e, opcionalmente, comparadas com a de outros computadores. Benchmarking • Figura a seguir mostra o resultado de um benchmark de processador realizado em um computador com processador Intel core i7 4500u de 1800 MHz. • Os números resultantes, apresentados na área superior, são expressos em milhões de instruções por segundo (MIPS) e de milhões de operações de ponto flutuante por segundo (MFLOP). Benchmarking • O botão Compare results pode ser usado para uma comparação com dados armazenados no banco de dados. • A figura a seguir mostra urna comparação com um processador Intel Core i5 2450m. • Ainda é possível inserir um certo grau de transparência para sobrepor as imagens de ambos, permitindo urna melhor percepção da diferença. Benchmarking • Além dos testes de desempenho de CPU, o PC Wizard disponibiliza testes de memória, gráficos, rede etc. Benchmarking • É importante que um benchmark possua quatro características: ser relevante (representativo) para a aplicação alvo à qual representa. • Ser portável entre diferentes arquiteturas e configurações de sistemas computacionais. • Ser escalável, podendo ser executado desde pequenos computadores pessoais até grandes mainframes • E ser simples de entender, caso contrário este perderá a sua credibilidade. Carga de trabalho • O objetivo principal de um benchmark é a avaliação de desempenho de sistemas computacionais. • Basicamente, quer-se medir quão rápido um dado sistema computacional efetua um determinado conjunto de tarefas. • Entretanto, a eficiência de um sistema computacional está diretamente relacionada aos fatores que degradam o seu desempenho. Carga de trabalho • Esta degradação, provocada pela sobrecarga de execução dos processos ativos no sistema, limita a velocidade na qual estas tarefas são executadas. • O termo processo, largamente utilizado na área de sistemas operacionais, consiste basicamente em um programa em execução. • Isto ocorre porque cada um destes processos ativos gera uma sobrecarga de execução específica, a qual constitui-se da quantidade de recursos computacionais utilizados e do consequente tempo gasto durante o uso destes recursos. Carga de trabalho • A avaliação de desempenho através da técnica de benchmark implica necessariamente na implementação e posterior execução de um conjunto de programas em um dado sistema computacional. • Deste modo, ao se avaliar o desempenho, insere-se uma sobrecarga de execução específica, gerada pelo próprio benchmark. • A esta sobrecarga de execução dá-se o nome de carga de trabalho do benchmark. Carga de trabalho • Exemplos • Em uma rede de computadores, a carga de trabalho é o número de pacotes que a rede deve transmitir. • Em um sistema de banco de dados, a carga é o número de requisições de consulta. • Em um computador, a carga pode ser o número de instruções que a CPU tem que processar ou o número de acessos à memória solicitados. Carga de trabalho • Nos estudos de avaliação de desempenho, a escolha da carga de trabalho correta é crucial para garantir que os resultados sejam aceitáveis. • A escolha de uma carga de trabalho inapropriada ou não representativa pode levar o estudo de desempenho a ser considerado inaceitável ou incorreto. • Logo, a carga de trabalho deve ser representativa de cenários correspondentes aos cenários de uso reais, tanto em termos de quantitativos quanto qualitativos. Carga de trabalho • Suponha o sistema de e-commerce, onde o estudo de atendimento de requisições prevê que ele atenderá 100 clientes por hora, porém uma carga real seria de 400 requisições por hora. • O resultado do estudo diria que o sistema está atendendo com grande velocidade de resposta • Mas no uso real, o servidor estaria sobrecarregado e atendendo com velocidade de resposta insatisfatória, sendo ela muito abaixo do mínimo esperado. Carga de trabalho • Da mesma forma, a escolha de uma carga muito acima das expectativas levará a um resultado superdimensionado. • Porém, dependendo do objetivo do estudo de desempenho, esta segunda opção poderá ser a escolhida. • No caso do servidor de e-commerce, o estudo que usa como carga 1000 clientes por hora mostrará que o servidor terá velocidade satisfatória. Carga de trabalho • A carga de trabalho qualitativamente incorreta também afeta o estudo de desempenho no momento em que se escolhe tipos diferentes de carga do que as que realmente serão encontradas no sistema. • Por exemplo, no caso de um servidor de jogos on- line. • Se o avaliador escolher como carga de trabalho usuários com perfil de usuários de bibliotecas on-line ele terá um dimensionamento e resultados completamente diferentes do correto para sua avaliação. Carga de trabalho • Nos estudos de avaliação de desempenho, a escolha da carga de trabalho correta é crucial para garantir que os resultados sejam aceitáveis. • A escolha de uma carga de trabalho inapropriada ou não representativa pode levar o estudo de desempenho a ser considerado inaceitável ou incorreto. Carga de trabalho • A carga de traba1ho de um benchmark engloba todos os processos criados ou acionados para execução, diretamente ou indiretamente, pelo benchmark. • Adicionalmente à carga de trabalho do benchmark, pode-se ter processos independentes, os quais geram uma sobrecarga de execução particular, chamada carga de trabalho externa ao benchmark. • Estes processos independentes, ao utilizarem recursos computacionais, também degradam o desempenho do sistema computacional como um todo. Carga de trabalho • Assim, os processos ativos no sistema podem ser divididos em dois grupos: processos pertencentes à carga de trabalho do benchmark e processos independentes. • A sobrecarga de execução gerada por estes dois grupos caracteriza a carga de trabalho total existente em um determinado sistema computacional Exercício • O que é Aferição? • O que é Benchmark? • Qual finalidade de se realizar testes de Benchmark? • O que é carga de trabalho do benchmark? • O que é carga de trabalho externa ao benchmark?