O agente do Application Real-Time Monitoring Service (ARMS) para Python utiliza monkey patching para instrumentar aplicações e coletar dados de observabilidade. A equipe do ARMS adotou diversas técnicas para reduzir a sobrecarga de desempenho do agente sem comprometer a estabilidade da aplicação. Este relatório quantifica a sobrecarga de desempenho em diferentes níveis de tráfego, permitindo que você avalie o impacto antes de conectar sua aplicação ao Application Monitoring.
Versão do agente testada: V1.0.0
Cenário de teste
O Performance Testing Service (PTS) envia tráfego para uma aplicação Python desenvolvida com o framework FastAPI. O instrumentador Python coleta traces, gera métricas e encaminha os dados para o servidor do ARMS.
Ambiente de teste
|
Componente |
Configuração |
|
Source de teste de estresse |
PTS |
|
Plataforma de implantação |
Cluster do Alibaba Cloud Container Service for Kubernetes (ACK) |
|
Tipo de instância do nó |
ecs.c6.2xlarge |
|
SO do nó |
Alibaba Cloud Linux 3.2104 LTS 64 bits |
|
Recursos do Pod |
2 núcleos, 2 GB de memória, 2 réplicas |
|
Versão do agente |
Agente ARMS para Python V1.0.0 |
Procedimento de teste
Execute testes de linha de base a 500, 1.000 e 2.000 QPS. Cada teste deve durar 1 hora. Antes de cada execução, aqueça a aplicação a 100 QPS por 3 minutos.
Instale o agente ARMS para Python. Defina a taxa de amostragem fixa em 10% e repita os mesmos testes. Compare o uso de CPU, o uso de memória e o tempo de resposta com a linha de base.
Desative o envio de dados, ative o plug-in e repita as etapas 1 e 2.
Desempenho de linha de base (sem agente)
|
QPS |
CPU |
Memória |
Tempo de resposta (ms) |
|
500 |
8% |
2% |
17,28 |
|
1.000 |
15% |
2% |
36,3 |
|
2.000 |
27,12% |
2% |
44,9 |
Desempenho com o agente ARMS
|
QPS |
CPU |
Memória |
Tempo de resposta (ms) |
|
500 |
11,9% |
4,8% |
17,31 |
|
1.000 |
22,5% |
4,8% |
37,1 |
|
2.000 |
36,67% |
4,8% |
46,6 |
Sobrecarga de desempenho
A tabela a seguir apresenta a diferença entre a linha de base e os resultados com o agente ativado em cada nível de tráfego:
|
QPS |
CPU |
Memória |
Tempo de resposta (ms) |
|
500 |
+3,9% |
+2,8% |
+0,03 |
|
1.000 |
+7,5% |
+2,8% |
+0,80 |
|
2.000 |
+9,55% |
+2,8% |
+1,67 |
Resumo
A sobrecarga de CPU e memória permanece abaixo de 10%. A 2.000 QPS, o agente adiciona no máximo 9,55% de CPU e 2,8% de memória.
O impacto no tempo de resposta é mínimo. O aumento máximo é de 1,67 ms a 2.000 QPS, o que representa uma variação inferior a 4% em relação à linha de base.
Os testes utilizam uma taxa de amostragem fixa de 10%. Caso sua carga de trabalho exija uma taxa diferente, a sobrecarga real pode variar. Para obter detalhes sobre como configure políticas de amostragem, consulte a documentação do ARMS.