Benchmark ArcGIS Enterprise...A Abordagem Original
Há algum tempo, discuti o uso do conjunto de dados Natural Earth com um teste Apache JMeter pré-configurado para benchmark uma implantação do ArcGIS Enterprise. Os resultados desse teste poderiam então ser comparados com execuções de outras implantações para obter uma ideia comparativa das características de desempenho e escalabilidade do hardware subjacente. Essa abordagem tinha alguns benefícios:
- Natural Earth é um dado GIS gratuito
- Disponível para uso público
- Complexidade de dados baixa a moderada (fácil de trabalhar)
- O Plano de Teste apresentava uma carga em etapas para observar as capacidades de escalabilidade
Embora útil e um bom parâmetro de medição, o componente de escalabilidade significava que o teste normalmente rodaria por um longo tempo (o que também adicionava alguma complicação). Eu me perguntei se haveria uma maneira mais fácil de apenas benchmark o hardware de processamento (por exemplo, a CPU) mas ainda através do ArcGIS Enterprise:
- Seria possível usar o JMeter sob uma perspectiva só de desempenho?
- Poderia eu criar um teste para benchmark o ArcGIS Enterprise sem um conjunto de dados FGDB ou geodatabase empresarial subjacente (o que deveria simplificar o esforço geral)?
Acontece que as respostas foram sim!
Benchmark ArcGIS Enterprise...Uma Abordagem Alternativa
Ok... Estou falando em meias verdades. O novo teste benchmark não depende de um serviço baseado em conjunto de dados FGDB ou eGDB, mas precisa de alguns dados. Para ajudar a manter as coisas simples, os dados (por exemplo, geometrias pré-geradas) são simplesmente passados pelos elementos amostra do JMeter para um recurso ArcGIS que não tem um conjunto de dados referenciado nos bastidores.
Então, como isso é feito?
Através do confiável <\/SPAN>serviço Geometry. O serviço geometry do ArcGIS Server é um recurso embutido que fornece acesso a muitas funções para realizar operações geométricas. Os cálculos dessas operações (como buffer ou generalize) podem ser simples ou complexos (dependendo do que você solicitar). Do ponto de vista do analista de desempenho, ele fornece um meio fantástico para benchmark do hardware CPU da máquina que executa o ArcGIS Server.<\/SPAN>
Nota: Embora o termo ArcGIS Enterprise inclua o ArcGIS Server, este benchmark exercita principalmente este último (por exemplo, ArcGIS Server). Algum tráfego pode passar pelo ArcGIS Web Adaptor e haverá uma pequena quantidade de autenticação Portal for ArcGIS ocorrendo, mas por design, a maior parte do trabalho será realizada pelo ArcGIS Server.<\/STRONG>
Benefícios do Uso do serviço Geometry
O serviço Geometry existe no ArcGIS Server desde a versão 9.3, portanto é onipresente. Isso torna um teste que o utiliza fácil e confiável. Como os dados que dirigem o teste são colocados dentro dos pares chave/valor das requisições, isso adiciona portabilidade (por exemplo, nenhum conjunto de dados para carregar).
Nota: Embora o serviço Geometry tenha sido incluído no ArcGIS Server por algum tempo, por padrão ele está desligado e não está em execução. O serviço precisaria ser iniciado e compartilhado com os membros apropriados do Portal for ArcGIS antes da execução do teste.<\/STRONG>
Plano de Teste Geometry_Functions_Benchmark
- Baixar e abrir o Plano de Teste no Apache JMeter deve parecer semelhante ao seguinte:
- Ajuste as Variáveis Definidas pelo Usuário para se adequar ao seu ambiente

Que Tipos de Funções Devem Ser Testadas?
Para um benchmark, a resposta curta é apenas algumas. Este Plano de Teste particular chama apenas algumas operações diferentes... assim como as mesmas operações de maneiras diferentes (por exemplo, mudando parâmetros da requisição para propositalmente obter uma resposta variante). Isso proporciona mutabilidade para que o teste não fique fazendo a mesma coisa repetidamente.
Abaixo está uma visão das operações usadas neste benchmark:

Desempenho Esperado do Teste e das Operações
Este teste tem algumas operações que podem executar rapidamente e outras que levarão mais tempo. Essa velocidade varia com base no hardware. Em última análise, queremos apenas que o ArcGIS Enterprise (por exemplo, Server) funcione por apenas alguns minutos para podermos ter uma ideia do desempenho do processamento. Se cada operação levasse 10 minutos (com o teste muito mais longo), o próprio benchmark pode se tornar muito demorado e menos prático para usar.
Exemplo de Arquitetura de Implantação
Este teste benchmark foi executado em laboratório contra dois servidores diferentes (por exemplo, executado uma vez por servidor):
- ArcGIS Enterprise -- Máquina #1 (hardware mais antigo)
- Intel Xeon E5-4650, 2.70 GHz
- SPECint_base2006
- Pontuação: 50.5
- 32 núcleos de processamento
- HyperThreading desativado
- 64GB RAM
- Rede 10Gbps
- ArcGIS Enterprise -- Máquina #2 (hardware mais novo)
- Intel Xeon Gold 6126, 2.60 GHz
- SPECint_base2006
- Pontuação: 71.9
- 24 núcleos de processamento
- HyperThreading desativado
- 128GB RAM
- Rede 10Gbps
Nota: Como este esforço de teste focou mais na velocidade em vez da taxa de transferência, foram usados números SPECint_base em vez de SPECint_rate_base.<\/STRONG>
Execução do Teste Benchmark
Para testes longos, não é recomendado executar o Plano de Teste dentro da GUI. No entanto, como este é um teste relativamente curto, o impacto é nominal.
Nota: Ao executar qualquer teste, sempre é recomendado coordenar o horário inicial e a duração esperada com as pessoas apropriadas. Isso garante impacto mínimo aos usuários e outros colegas que também possam precisar usar o Site ArcGIS Enterprise em questão (por exemplo, a implantação em produção). Além disso, isso ajuda a prevenir ruído do sistema de outras atividades e usos que possam "poluir" os resultados do teste.<\/STRONG>
Resultados
Após ajustar as Variáveis Definidas pelo Usuário para apontar ao ambiente apropriado (Máquina #1…devlab05), o benchmark foi executado diretamente na GUI do JMeter. Os resultados podem ser observados no elemento Visualizar Resultados em Tabela:
- Para conveniência, o Plano de Teste calcula automaticamente a duração total da execução do teste, diretamente no nome da última operação
- Isto torna fácil observar o tempo do benchmark na tabela

< LI >O Plano de Teste foi ajustado para apontar a um servidor com hardware mais novo (Máquina #2…eistsrv05) e o benchmark foi reexecutado< /SPAN >< UL >< LI >< SPAN >Na tabela, os resultados são adicionados após a primeira execução:< /SPAN >< / LI >< / UL >< / LI >< / UL >< P >< SPAN >< span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="jmeter_geometry_functions_benchmark_results_server2.png" style="width: 999px;"><\/span><\/SPAN><\/P>Como esperado, a primeira máquina precisou de mais tempo para completar as mesmas operações. Isso resultou em uma diferença mensurável no desempenho entre as duas máquinas.<\/SPAN><\/P>- Máquina #1…devlab05
- Duração do benchmark: 259946 ms<\/LI><\/UL><\/LI>
- Máquina #2…eistsrv05
- Duração do benchmark: 181441 ms<\/LI><\/UL><\/LI><\/UL>
Calcular a Mudança Percentual<\/H2>Como os tempos de resposta foram menores (por exemplo, mais rápidos) com hardware mais novo (comparado à primeira execução em hardware mais antigo), vamos calcular uma diminuição percentual<\/EM>:<\/P>Primeiro, tempo original do servidor - tempo do servidor mais novo = a diminuição<\/LI>Então, a diminuição ÷ número original do servidor × 100 = a % de diminuição<\/LI><\/UL>(259946 ms - 181441 ms) / 259946 ms = 0.302<\/P>0.302 x 100 = 30.2% <\/P>Os tempos do benchmark do hardware mais antigo (nosso ponto de partida) foram 30% maiores que o hardware mais novo<\/U>. Essa mudança percentual sugere uma melhoria mensurável ao usar o hardware mais novo.<\/P>Estimativa da Mudança Percentual Baseada no SPEC<\/H2>Vamos usar a razão SPEC com o tempo do benchmark da execução original para prever o target_time (tempo do benchmark na máquina mais nova). Isso pode ajudar a entender se aproximadamente a mesma mudança percentual poderia ser estimada.<\/P>(Baseline_SPEC x Baseline_Time) = (Target_SPEC x Target_Time)<\/P>((Baseline_SPEC x Baseline_Time) / Target_SPEC) = Target_Time<\/P>(36.875 x 259946 ms) / 53.75 = 178335 ms (após arredondar para o segundo mais próximo)<\/P>(259946 ms - 178335 ms) / 259946 ms = 0.314<\/P>0.314 x 100 = 31.4%<\/P>Com essa previsão, o hardware mais antigo foi estimado como 31% inferior ao hardware mais novo. Isso está muito próximo da mudança percentual que foi calculada com base nos tempos observados do benchmark.<\/U> <\/P>Hardware Futuro<\/H1>
<\/span>Arquiteturas de processadores e velocidades de CPU estão sempre melhorando. Eventualmente<\/EM>, um teste de benchmark assim (como está atualmente construído) pode levar apenas um minuto ou dezenas de segundos para rodar (que ótimo problema para ter). Neste ponto, complexidade poderia ser adicionada ao teste para aumentar sua duração e melhor corresponder à nova tecnologia.<\/P>Você pode ter notado que a última transação no teste foi desabilitada. Essa solicitação de Buffer de 1000 Pontos com uma distância de 10000 metros e uma unidade de 9035 (Distância Internacional em Metros) leva algum tempo para calcular (mesmo em hardware decente). Foi desabilitada para encurtar o tempo de execução para uma duração razoável. No entanto, se for útil, pode ser habilitada como um cálculo adicional, dependendo da velocidade da CPU da implantação de interesse.<\/P>Considerações Finais <\/H1>Como mencionado em outros artigos da comunidade, não existe um único serviço ou função que possa cobrir toda a amplitude e profundidade do ArcGIS. No entanto, o serviço Geometry é um recurso que representa uma parte do incrível campo do GIS que é fácil de trabalhar. Isso o torna uma boa opção para usar em esforços de testes de benchmark.<\/P>Um Tempo de Resposta Rápido É Tudo Sobre Velocidade da CPU, Certo?<\/H2>Para este teste de benchmark Geometry, sim. No entanto, para serviços do mundo real, velocidade de processamento não é o único fator.<\/P>Componentes de hardware do servidor como velocidade do disco, memória disponível, velocidade da rede são outros recursos que podem melhorar os tempos de resposta (além da velocidade da CPU). Juntos, todos eles têm um efeito positivo na experiência do usuário.<\/P>Este benchmark focou no desempenho da CPU pois é uma grande parte do processo requisição cliente/resposta servidor, mas como mencionado, não é o único recurso do servidor quando se considera outros potenciais serviços ArcGIS.<\/P>E Quanto a Outras Ferramentas de Comparação de CPU?<\/H2>
<\/span>Existem muitas utilidades por aí que podem perfilar e testar as várias peças do hardware do servidor usando uma bateria completa de exercícios. Esses testes são ótimos e certamente agregam valor para entender o hardware. Novamente, não existe um único teste que possa representar todas as coisas GIS. Mas esperamos que este Plano de Teste Benchmark Geometry possa ser uma ferramenta útil no arsenal do analista. <\/P>
<\/P>Para baixar o Plano de Teste Apache JMeter usado neste Artigo veja: geometry_functions_benchmark1.zip<\/A><\/STRONG> <\/P> <\/P>
<\/P>
<\/P>
Atribuição<\/STRONG><\/P>Recurso:
File:Wikimedia_Foundation_Servers-8055_43.jpg<\/A><\/P>Descrição: Servidores PowerEdge montados em rack da 11ª geração<\/SPAN><\/P>Autor:
Victorgrigas<\/A> - Trabalho próprio<\/SPAN><\/P>Criado: 16 de julho de 2012<\/SPAN><\/P>Enviado: 20 de julho de 2012<\/SPAN><\/P>Licença: CC BY-SA 3.0<\/A>, Link<\/A> <\/P> <\/P>
Recurso:
File:Cpu-processor.jpg<\/A><\/P>Descrição:<\/P>
Autor:
Fx Mehdi<\/A> - Trabalho próprio<\/SPAN><\/P>Enviado: <\/SPAN>30 de maio de 2019<\/SPAN>
Licença: Creative Commons Attribution-Share Alike 4.0 International