Escolhendo uma Capacidade do ArcGIS Enterprise para Benchmarking
Como o sistema de software fundamental para GIS, o ArcGIS Enterprise realiza muitas funções como mapeamento e visualização, análises. Dentre essa ampla gama de capacidades e funções, não existe um único teste que possa representar toda a sua habilidade.
No entanto, se uma função fosse usada como benchmark para testar uma implantação do ArcGIS Enterprise, um forte argumento pode ser feito para a função de exportação do serviço de mapa. A exportação de mapa pode ser chamada facilmente e programaticamente em um Plano de Teste Apache JMeter variando as extensões espaciais das requisições a partir de arquivos CSV em várias escalas de mapa. Isso se traduz em apenas uma requisição para cada transação de escala de mapa, o que ajuda a manter o teste simples e fácil de manter. Juntamente com o fato de que a função de exportação está disponível desde a versão 9.3, torna-se uma operação comprovada e confiável para benchmarking.
O que é um Benchmark de um Serviço de Mapa?
Testadores e administradores GIS frequentemente são encarregados de entender as diferenças na taxa de transferência entre dois sistemas ou o mesmo sistema após alguma modificação no ambiente. Em tais cenários, um benchmark é o processo de realizar um teste de carga para atuar como um padrão pelo qual múltiplas coisas podem ser comparadas entre si.
Com respeito ao GIS, esse teste de carga seria um Plano de Teste Apache JMeter executando um teste de carga escalonada contra um serviço de mapa do ArcGIS Enterprise para entender a maior taxa de throughput (transações/seg ou requisições/seg) que pode ser alcançada pela implantação dado um estado ou configuração particular. Essa taxa também é conhecida como throughput máximo. No throughput máximo, entender o desempenho (tempo de resposta da transação ou requisição) também seria crítico para medir.
Conjunto de Dados Benchmark
Qualquer conjunto de dados pode ser usado para um benchmark desde que seja mantido constante onde mudanças como adições, atualizações, exclusões e versões da classe de feição não sejam feitas. Essa consistência ajuda a criar um "padrão" confiável já que é um alvo fixo. Os dados do teste podem ser privados (ex: proprietários) ou baseados em domínio público.

O que são Dados em Domínio Público?
De modo geral, dados em domínio público seriam quaisquer conjuntos raster ou vetoriais que são gratuitos para download e uso. Existem muitos conjuntos de dados em domínio público disponíveis (e potencialmente diferentes licenças que os definem). Os dados usados neste Artigo são Feitos com Natural Earth e fornecidos através da licença Creative Commons (CC0).

Por Que Usar Dados em Domínio Público?
Uma das características que fazem um bom benchmark é construir um teste para que outros possam repetir o mesmo teste que você fez. Dados em domínio público são uma boa escolha nesse aspecto pois promovem um padrão de teste e uma medida confiável para desempenho e escalabilidade.
SampleWorldCities vs Natural Earth
Enquanto a inclusão do SampleWorldCities pelo ArcGIS Server através da sua instalação ajuda a tornar o conjunto de dados ubíquo e bom para exemplos e tutoriais, seu tamanho extremamente pequeno não o torna ideal para usar no benchmarking de um serviço de mapa.
Os conjuntos Natural Earth, por outro lado, fornecem algum detalhe decente do mapa (em escalas menores) cobrindo todo o mundo. Além disso, isso pode ser alcançado com uma pegada fácil em termos de tamanho no disco, o que ajuda a torná-lo mais prático para compartilhar, baixar e usar.
O Conjunto Benchmark Natural Earth
- Baixe o conjunto benchmark aqui
- Os dados são um subconjunto do Natural_Earth_quick_start.zip e incluem um MXD modificado para ArcMap 10.8.1 e projeto ArcGIS Pro 2.8.
- Qualquer um pode ser usado para publicar um serviço de mapa no ArcGIS Enterprise.
- O subconjunto Natural Earth deve parecer similar ao seguinte quando aberto no ArcGIS Pro (ou ArcMap)

Arquitetura da Implantação
A arquitetura é detalhe importante de um benchmark. Os seguintes são todos componentes importantes da arquitetura do benchmark que impactam o teste:
- Existe um Web Adaptor?
- A autenticação foi envolvida ou o serviço foi disponibilizado para todos
- Autenticação Portal for ArcGIS
- Autenticação token do ArcGIS Server
- Disponível para todos
- Quantas máquinas participaram do Site ArcGIS?
- Detalhes do processador
- Modelo e arquitetura do processador
- Número de núcleos CPU para cada servidor (incluindo a estação cliente do teste)
- Físico, virtual ou nuvem
- Detalhes da Memória Física
- Total da memória do sistema
- Velocidade da rede
- Versão do ArcGIS Enterprise
- Versão do Sistema Operacional
Nota: Recomenda-se anotar os detalhes da arquitetura da implantação. Salvar essa informação junto com os resultados dos testes pode ajudar a dar contexto adequado e significado à análise ou conclusões.
Os resultados listados neste teste benchmark foram executados contra a seguinte arquitetura ambiental:
- ArcGIS Server (10.9 Final)
- Dell PowerEdge R640
- Windows Server 2019
- Rede 10G
- ArcGIS Web Adaptor (10.9 Final)
- Cliente do Teste
- Apache JMeter 5.4.1
- Dell PowerEdge R640
SPECint_rate_base2006 - Windows Server 2019
- Rede 10G
Tipo e Localização da Fonte dos Dados
Usar tanto geodatabase arquivo quanto geodatabase empresarial para armazenar dados no teste benchmark é aceitável. R egardless of which is used, the detail of the data source is an important property of the environment which should be noted.
Nota: Recomenda-se anotar o tipo da fonte dos dados. Salvar essa informação junto com os resultados dos testes pode ajudar a dar contexto adequado e significado à análise ou conclusões.
Quanto à localização, usar uma geodatabase arquivo remota em vez de uma geodatabase arquivo local pode ser necessário se a implantação tiver vários servidores que compõem o ArcGIS Enterprise Site. Em qualquer dos casos, remoto ou local, a localização da fonte de dados também é um detalhe importante do ambiente de teste que deve ser anotado.<\/SPAN><\/P>Nota: Recomenda-se anotar a localização da fonte de dados. Salvar essa informação junto com os resultados do teste pode ajudar a dar contexto e significado adequados à análise ou conclusões.<\/STRONG><\/FONT><\/P>Tipo de Serviço e Número de Instâncias<\/FONT><\/H2>Para os serviços de mapa ArcGIS mais amplamente usados em um Site, recomenda-se publicar o recurso como uma instância Dedicated em vez de Shared. Embora ambos os tipos possam escalar para utilizar totalmente o hardware disponível, uma instância de serviço Dedicated possui recursos nos bastidores dedicados a ela, o que a torna uma escolha ideal para um teste benchmark.<\/FONT><\/P>Para desempenho previsível, recomenda-se definir o número Mínimo e Máximo de instâncias para o tipo de instância Dedicated igual ao número de núcleos de CPU da máquina ArcGIS Server.<\/FONT><\/P>Nota: Recomenda-se anotar o tipo de serviço e o número de instâncias. Salvar essa informação junto com os resultados do teste pode ajudar a dar contexto e significado adequados à análise ou conclusões.<\/STRONG><\/FONT><\/P>As Opções de Solicitação em um Teste Benchmark Importam?<\/H2>Absolutamente! Usar um conjunto de dados comum e a função export map não é suficiente para estabelecer um benchmark confiável. A operação export é extremamente versátil, mas através dessa flexibilidade uma imagem pode ser gerada por meio de várias opções diferentes de entrada.<\/P>Um teste de carga que envia solicitações ao serviço de mapa consistentemente é importante para estabelecer um benchmark confiável. O teste pode solicitar um formato de imagem BMP em vez de PNG ou pedir que os dados estejam em uma referência espacial diferente da padrão 4326? Sim, mas alterar tais opções pode impactar o desempenho e escalabilidade do teste, portanto recomenda-se deixar as configurações deste Plano de Teste como estão.<\/P>O Plano de Teste Benchmark do Serviço de Mapa <\/H1>Para baixar o Plano de Teste Apache JMeter usado neste Artigo veja: <\/SPAN>naturalearth1.zip<\/A> <\/STRONG>- Este Plano de Teste é amplamente baseado no projeto SampleWorldCities do
artigo anterior<\/A><\/LI><\/UL><\/LI><\/UL>- Baixar e abrir o Plano de Teste no Apache JMeter deve ser semelhante ao seguinte:
Configuração do Thread Group<\/H2>O Thread Group define as características da carga incremental do teste e desempenha um papel importante. Para um export map, o Número máximo de Threads para o teste tem uma relação próxima com o número máximo de núcleos CPU do ArcGIS Server (e similarmente, o número máximo de instâncias do serviço). Configurar os threads do teste para exceder o número de núcleos ajuda a garantir que pressão suficiente seja aplicada para utilizar totalmente os recursos da CPU do servidor. A partir daí, deve-se observar o pico de throughput, que é um objetivo principal do teste benchmark.<\/P>Nota: Nem todos os conjuntos de dados testados podem mostrar o respectivo serviço utilizando totalmente a CPU da camada ArcGIS Server. Nesses casos, é necessário solucionar problemas adicionais para entender onde está o gargalo que limita a escalabilidade do fluxo de trabalho dado.<\/STRONG><\/FONT><\/P>Como regra geral, configure a carga máxima incremental para ser 25% -- 60% maior que o número dos núcleos CPU do servidorComo visto abaixo, o Plano de Teste está configurado para rodar por 1 hora e alcançar uma carga máxima incremental de 40 threads concorrentesIsso iniciaria o benchmark com 1 thread e adicionaria um thread adicional a cada 90 segundos<\/LI>Este benchmark foi projetado para testar uma implantação ArcGIS Server rodando em 24 núcleos físicos da CPU <\/LI>Ajuste conforme necessário, nem todo ArcGIS Server rodará em 24 núcleos físicos e os valores máximos incrementais podem ser muito altos para sua implantação<\/LI><\/UL><\/LI><\/UL><\/LI><\/UL>
Nota: Recomenda-se anotar os detalhes da configuração da carga incremental. Salvar essa informação junto com os resultados do teste pode ajudar a dar contexto e significado adequados à análise ou conclusões.<\strong>
Execução do Teste Benchmark
O benchmark deve ser executado da mesma forma que um Plano de Teste típico do JMeter.
Veja o script runMe.bat incluído no projeto naturalearth1.zip como exemplo sobre como executar um teste recomendado pela equipe Apache JMeter.
Nota: Sempre recomenda-se coordenar o horário e duração do início do teste de carga com as pessoas apropriadas. Isso garante impacto mínimo aos usuários e outros colegas que também possam precisar usar o ArcGIS Enterprise Site. Além disso, isso ajuda a prevenir ruído do sistema proveniente de outras atividades e usos que podem "poluir" os resultados do teste.<\strong>
Resultados e Análise
Uma vez que o teste de carga tenha sido concluído, o runME.bat instrui o Apache JMeter a gerar automaticamente um relatório para auxiliar na análise dos resultados.
Pode haver artigos inteiros e recursos na internet dedicados exclusivamente à análise dos componentes dos resultados de um teste de carga. Portanto, no interesse em manter as coisas simples, nosso foco será olhar as métricas throughput das solicitações (solicitações/segundo) e desempenho das solicitações (segundos) no relatório.
Os diagramas abaixo ilustram as tendências ideais desses dois itens no teste ao longo do tempo.
Curva Ideal de Throughput

Iidealmente, a curva throughput terá a forma da linha laranja acima. O ponto onde a curva atinge pico e começa a se estabilizar indica que o sistema alcançou seu nível máximo de throughput (devido a um gargalo no hardware ou software). Esta área do gráfico onde a curva dobra é chamada joelho, e o valor máximo para throughput está neste ponto.
A linha azul representa a carga incremental crescente do teste.
Curva Ideal de Desempenho

Iidealmente, a curva tempo-resposta terá a forma da linha verde acima. Ela é tomada neste mesmo ponto no teste como throughput máximo.
A linha azul representa a carga incremental crescente do teste.
Relatório JMeter
Incluído no projeto naturalearth1.zip está um relatório Apache JMeter chamado naturalearth1_run1 dentro da pasta reports.
- Abrir index.html revelará múltiplos gráficos e tabelas para auxiliar na análise

Curva Real Atualizada Throughput
- Do relatório:
- No menu Charts->Throughput, encontra-se o gráfico Hits Per Second onde está plotado throughput das solicitações do teste
- Como o teste foi construído com cada transação contendo apenas uma solicitação, "hits por segundo" é equivalente tanto a transactions/sec quanto a requests/sec
- O sistema alcançou uma taxa máxima de aproximadamente 80 transactions/sec (ou 80 requests/sec)
Curva de Desempenho Real
- Do relatório:
- Em Charts-->Response Times, pode-se encontrar o gráfico Time Vs Threads onde o desempenho das requests do teste é plotado
- Todos os itens exceto "/pvtserver/rest/services/NaturalEarth/MapServer/export" são filtrados (clicando neles na legenda)
- Como o teste foi construído com cada transaction contendo apenas uma request, a "export request" também representa o desempenho médio da transaction
- No ponto de throughput máximo, o sistema entrega um desempenho de transaction de cerca de 314ms ou 0,3 segundos

Nota: Uma abordagem diferente para a análise precisará ser adotada para testes de carga contendo transactions com mais de uma request
Comparando os Resultados
Depois que você completar o teste do seu sistema com os dados fornecidos e o Test Plan, você pode comparar os resultados com aqueles listados neste Artigo. Isso pode fornecer uma medida aproximada para equiparar dois sistemas.
Apache JMeter lancado sob a Apache License 2.0. Apache, Apache JMeter, JMeter, a pena Apache e o logo Apache JMeter são marcas registradas da Apache Software Foundation.