O conjunto de documentação deste produto faz o possível para usar uma linguagem imparcial. Para os fins deste conjunto de documentação, a imparcialidade é definida como uma linguagem que não implica em discriminação baseada em idade, deficiência, gênero, identidade racial, identidade étnica, orientação sexual, status socioeconômico e interseccionalidade. Pode haver exceções na documentação devido à linguagem codificada nas interfaces de usuário do software do produto, linguagem usada com base na documentação de RFP ou linguagem usada por um produto de terceiros referenciado. Saiba mais sobre como a Cisco está usando a linguagem inclusiva.
A Cisco traduziu este documento com a ajuda de tecnologias de tradução automática e humana para oferecer conteúdo de suporte aos seus usuários no seu próprio idioma, independentemente da localização. Observe que mesmo a melhor tradução automática não será tão precisa quanto as realizadas por um tradutor profissional. A Cisco Systems, Inc. não se responsabiliza pela precisão destas traduções e recomenda que o documento original em inglês (link fornecido) seja sempre consultado.
Este documento descreve a metodologia geral para solucionar problemas de uma experiência de GUI do APIC lenta.
É comum perceber que problemas lentos de GUI do APIC são o resultado de uma alta taxa de solicitações de API originadas de um script, integração ou aplicativo. O access.log de um APIC registra cada solicitação de API processada. O access.log de um APIC pode ser rapidamente analisado com o script Access Log Analyzer no projeto do grupo Github Datacenter aci-tac-scripts.
O NGINX é o DME responsável pelos endpoints de API disponíveis em cada APIC. Se NGINX estiver inoperante, as solicitações de API não poderão ser tratadas. Se NGINX estiver congestionado, a API está congestionada. Cada APIC executa seu próprio processo NGINX, portanto, é possível que apenas um único APIC possa ter problemas de NGINX se apenas esse APIC for direcionado por qualquer consultante agressivo.
A IU do APIC executa várias solicitações de API para preencher cada página. Da mesma forma, todos os comandos show do APIC (CLI do estilo NXOS) são empacotadores para scripts python que executam várias solicitações de API, manipulam a resposta e a enviam ao usuário.
|
Nome do arquivo de log |
Local |
Em qual suporte técnico ele está |
Comentários |
|
access.log |
/var/log/dme/log |
APIC 3de3 |
Independentemente da ACI, oferece 1 linha por solicitação de API |
|
error.log |
/var/log/dme/log |
APIC 3de3 |
Independente da ACI, mostra erros nginx (limitação incluída) |
|
nginx.bin.log |
/var/log/dme/log |
APIC 3de3 |
Específico da ACI, registra transações DME |
|
nginx.bin.warnplus.log |
/var/log/dme/log |
APIC 3de3 |
Específico da ACI contém logs que são de aviso+ gravidade |
O que é afetado?
Como ocorre a lentidão?
Quando a lentidão foi notada pela primeira vez?
O access.log é um recurso do NGINX e, portanto, não depende do APIC. Cada linha representa 1 solicitação HTTP recebida pelo APIC. Consulte esse registro para entender o uso do NGINX de um APIC.
O formato access.log padrão na versão 5.2+ do ACI:
log_format proxy_ip '$remote_addr ($http_x_real_ip) - $remote_user [$time_local]'
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
Esta linha representa uma entrada access.log quando um moquery -c fvTenant é executado:
127.0.0.1 (-) - - [07/Apr/2022:20:10:59 +0000]"GET /api/class/fvTenant.xml HTTP/1.1" 200 15863 "-" "Python-urllib"
Mapa da entrada access.log de exemplo para log_format:
|
campo log_format |
Conteúdo do exemplo |
Comentários |
|
$remote_addr |
127.0.0.1 |
IP do host que enviou esta solicitação |
|
$http_x_real_ip |
- |
IP do último solicitante se proxies estiverem em uso |
|
$remote_user |
- |
Não é geralmente usado. Marque nginx.bin.log para rastrear qual usuário efetuou login para executar solicitações |
|
$time_local |
07/abr/2022:20:10:59 +0000 |
Quando a solicitação foi processada |
|
$request |
OBTENHA /api/class/fvTenant.xml HTTP/1.1 |
Método Http (GET, POST, DELETE) e URI |
|
$status |
200 |
|
|
$body_bytes_sent |
1586 |
tamanho de payload de resposta |
|
$http_referer |
- |
- |
|
$http_user_agent |
Python- urllib |
Que tipo de cliente enviou a solicitação |
Intermitências de solicitação de alta taxa durante um grande período de tempo:
Respostas 4xx ou 5xx consistentes:
O access.log de um APIC pode ser rapidamente analisado com o script Access Log Analyzer no projeto do grupo Github Datacenter aci-tac-scripts.
A utilização da CPU e da memória do NGINX pode ser verificada com o comando top do APIC:
top - 13:19:47 up 29 days, 2:08, 11 users, load average: 12.24, 11.79, 12.72
Tasks: 785 total, 1 running, 383 sleeping, 0 stopped, 0 zombie
%Cpu(s): 3.5 us, 2.0 sy, 0.0 ni, 94.2 id, 0.1 wa, 0.0 hi, 0.1 si, 0.0 st
KiB Mem : 13141363+total, 50360320 free, 31109680 used, 49943636 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 98279904 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
21495 root 20 0 4393916 3.5g 217624 S 2.6 2.8 759:05.78 nginx.bin
O alto uso de recursos NGINX pode se correlacionar diretamente a uma alta taxa de solicitações processadas.
Um travamento de NGINX não é típico para problemas de GUI do Slow APIC. No entanto, se houver núcleos NGINX, anexe-os a um TAC SR para análise. Consulte o guia de suporte técnico da ACI para obter as etapas para verificar os núcleos.
Se solicitações rápidas não forem encontradas, mas um usuário continuar a exibir lentidão da interface do usuário, o problema pode ser a latência de Cliente (navegador) para Servidor (APIC).
Nesses cenários, valide o caminho de dados do navegador para o APIC (distância geográfica, VPN etc.). Se possível, implante e teste o acesso de um servidor de salto localizado na mesma região geográfica ou no mesmo data center que os APICs para isolar. Valide se outros usuários exibem uma quantidade similar de latência.
Todos os navegadores têm a capacidade de validar solicitações e respostas HTTP por meio do kit de ferramentas Desenvolvimento de navegador, normalmente em uma guia Rede.
Essa ferramenta pode ser usada para validar o tempo necessário para cada estágio de solicitações originadas no navegador, conforme mostrado na imagem.
Exemplo do navegador aguardando 1,1 minuto para que o APIC responda
Página Grupo de Políticas:
ID de bug Cisco CSCvx14621 - GUI do APIC carrega lentamente nas políticas de IPG na guia Estrutura.
Interface na página Inventário:
ID de bug Cisco CSCvx90048 - A carga inicial da guia operacional "Configuração de interface física da camada 1" é longa/induz 'congelamento'.
Certos navegadores, como o Firefox, permitem mais conexões da Web por host por padrão.
A VPN e a distância para o APIC aumentam a lentidão geral da interface do usuário, considerando as solicitações do navegador do cliente e o tempo de viagem de resposta do APIC. Uma caixa de salto geograficamente local para os APICs reduz significativamente o tempo de viagem do navegador para o APIC.
Se um servidor da Web (NGINX no APIC) lidar com um grande volume de solicitações da Web longas, isso pode afetar o desempenho de outras solicitações recebidas em paralelo.
Isso é especialmente verdadeiro para sistemas que têm bancos de dados distribuídos, como APICs. Uma única solicitação de API pode exigir solicitações e pesquisas adicionais enviadas a outros nós na malha, o que pode resultar em tempos de resposta esperadamente mais longos. Um pico dessas Solicitações da Web Longa em um pequeno intervalo de tempo pode compor a quantidade de recursos necessários e levar a tempos de resposta inesperadamente mais longos. Além disso, as solicitações recebidas podem expirar (90 segundos), o que resulta em um comportamento inesperado do sistema da perspectiva do usuário.
No 4.2(1)+, um usuário pode habilitar o "Cálculo de desempenho do sistema", que rastreia e destaca solicitações de API que levaram tempo para serem tratadas.
O cálculo pode ser ativado em Sistema - Configurações do sistema - Desempenho do sistema
Quando o "Cálculo" estiver habilitado, um usuário poderá navegar para APICs específicos em Controladores para visualizar as Solicitações de API mais lentas nos últimos 300 segundos.
Sistema - Controladores - Pasta Controladores - APIC x - Tempo de resposta do servidor
Disponível no 4.2(1)+, um usuário pode habilitar o acelerador de solicitações em HTTP e HTTPS independentemente.
Observação: a partir da versão 6.1(2) da ACI, a taxa máxima suportada para esse recurso foi reduzida para 40 solicitações por segundo (r/s) ou 2.400 solicitações por minuto (r/m) de 10.000 r/m.
Malha - Políticas de malha - Pastas de políticas - Pasta de acesso de gerenciamento - padrão
Quando habilitado:
apic# less /var/log/dme/log/error.log
...
2023/04/17 20:19:14 [error] ... limiting requests, excess: 40.292 by zone "httpsClientTagZone", client: h.o.s.t, ... request: "GET /api/class/...", host: "a.p.i.c"
2023/04/17 20:19:14 [error] ... limiting requests, excess: 40.292 by zone "httpsClientTagZone", client: h.o.s.t, ... request: "GET /api/node/...", host: "a.p.i.c"
Como regra geral, o Request Throttle serve apenas para proteger o servidor (APIC) de sintomas do tipo DDOS induzidos por Clientes agressivos de consulta. Entender e isolar o cliente agressivo de solicitação para soluções finais na lógica de aplicativo/script.
Essas recomendações foram projetadas para ajudar a reduzir a carga e o estresse operacional no APIC, particularmente em cenários em que nenhuma fonte é responsável por um grande volume de chamadas de API. Implementando essas práticas recomendadas, você pode minimizar o processamento, o registro e a geração de eventos desnecessários em sua malha, resultando em melhor estabilidade e desempenho do sistema. Essas sugestões são especialmente relevantes em ambientes em que comportamentos agregados em vez de incidentes isolados contribuem para a tensão do APIC.
Certifique-se de que o registro da ACL esteja DESATIVADO durante as operações normais. Habilite-o somente durante janelas de manutenção agendadas para solução de problemas ou depuração. O registro contínuo pode gerar mensagens informativas excessivas, especialmente com quedas de tráfego de alto volume em vários switches, aumentando a carga de trabalho do APIC.
Para obter mais detalhes, consulte o Guia de configuração de segurança do Cisco APIC (link do guia 5.2.x):
https://www.cisco.com/c/en/us/td/docs/dcn/aci/apic/5x/security-configuration/cisco-apic-security-configuration-guide-release-52x/security-policies-52x.html
Configure o sistema de modo que somente as mensagens de syslog de severidade ALERT sejam convertidas em eventRecords. Evite converter o nível INFORMATION (que inclui ACL.logging) para evitar que eventos ruidosos sobrecarreguem o APIC:
1. Navegue até Fabric → Fabric Policies → Policies → Monitoring → Common Policy → Syslog Message Policies → Default.
2. Ajuste o filtro de instalação para definir a gravidade do syslog como alerta.
Para reduzir o ruído, suprima os códigos de evento (squelch) que não são relevantes para suas necessidades de monitoramento.
Para silenciar o código de evento E4204939, use este comando em qualquer CLI do APIC:
bash
icurl -k -sX POST -d '<fabricInst><monCommonPol><eventSevAsnP code="E4204939" sev="squelched"/></monCommonPol></fabricInst>' 'https://localhost/api/node/mo/uni/.xml’
Para verificar:
bash
icurl -k -sX GET 'https://localhost/api/node/class/eventSevAsnP.xml' | xmllint --format -
Como alternativa, verifique via interface do usuário:
Fabric > Fabric Policies > Policies > Monitoring > Common Policy > Event Severity Assignment Policy (Estrutura > Políticas de estrutura > Políticas de monitoramento > Política comum > Política de atribuição de severidade de evento)
Para malhas gerenciadas por versões ND anteriores a 3.2.2m ou 4.1.1g, faça a atualização para uma dessas versões ou posterior para otimizar os intervalos de atualização da assinatura. As versões anteriores são atualizadas a cada 45 segundos por MO, o que, em escala, pode resultar em mais de 300.000 solicitações APIC por dia. As versões atualizadas aumentam o tempo limite da assinatura para 3600 segundos (1 hora), reduzindo as atualizações para cerca de 5.000 por dia.
As malhas ativadas pela Intersight geram consultas periódicas ao topsystem a partir do conector DC (a cada 15 segundos), adicionando à carga do APIC.
Na versão 6.1.2 e posterior, essa consulta foi otimizada para reduzir a sobrecarga.
Defina a política de retenção para eventRecord, faultRecord e healthRecord como 1.000 para evitar o acúmulo excessivo de registros. Isso é especialmente útil quando você extrai esses registros regularmente para qualquer atividade operacional específica. Sempre avalie o impacto da redução da granularidade do monitoramento em relação aos requisitos operacionais e de solução de problemas.
| Revisão | Data de publicação | Comentários |
|---|---|---|
1.0 |
09-Dec-2025
|
Versão inicial |
Feedback