El conjunto de documentos para este producto aspira al uso de un lenguaje no discriminatorio. A los fines de esta documentación, "no discriminatorio" se refiere al lenguaje que no implica discriminación por motivos de edad, discapacidad, género, identidad de raza, identidad étnica, orientación sexual, nivel socioeconómico e interseccionalidad. Puede haber excepciones en la documentación debido al lenguaje que se encuentra ya en las interfaces de usuario del software del producto, el lenguaje utilizado en función de la documentación de la RFP o el lenguaje utilizado por un producto de terceros al que se hace referencia. Obtenga más información sobre cómo Cisco utiliza el lenguaje inclusivo.
Cisco ha traducido este documento combinando la traducción automática y los recursos humanos a fin de ofrecer a nuestros usuarios en todo el mundo contenido en su propio idioma. Tenga en cuenta que incluso la mejor traducción automática podría no ser tan precisa como la proporcionada por un traductor profesional. Cisco Systems, Inc. no asume ninguna responsabilidad por la precisión de estas traducciones y recomienda remitirse siempre al documento original escrito en inglés (insertar vínculo URL).
Este documento describe la metodología general para resolver problemas de una experiencia de GUI de APIC lenta.
Se observa con frecuencia que los problemas de la GUI de APIC lenta son el resultado de una alta tasa de solicitudes de API originadas en un script, integración o aplicación. El archivo access.log de un APIC registra cada solicitud de API procesada. El access.log de un APIC se puede analizar rápidamente con el script Access Log Analyzer dentro del proyecto Github Datacenter group aci-tac-scripts.
NGINX es el DME responsable de los terminales API disponibles en cada APIC. Si NGINX no funciona, no se pueden gestionar las solicitudes de API. Si NGINX está congestionado, la API también lo está. Cada APIC ejecuta su propio proceso NGINX, por lo que es posible que solo un APIC pueda tener problemas de NGINX si solo ese APIC es el objetivo de cualquier consultor agresivo.
La interfaz de usuario de APIC realiza varias solicitudes de API para rellenar cada página. Del mismo modo, todos los comandos 'show' de APIC (CLI de estilo NXOS) son contenedores para scripts de Python que realizan varias solicitudes de API, controlan la respuesta y, a continuación, se la proporcionan al usuario.
Nombre de archivo de registro |
Ubicación |
¿En qué soporte técnico se encuentra? |
Comentarios |
access.log |
/var/log/dme/log |
APIC 3de3 |
Independiente de ACI, ofrece 1 línea por solicitud de API |
error.log |
/var/log/dme/log |
APIC 3de3 |
Independiente de ACI, muestra errores nginx (limitación incluida) |
nginx.bin.log |
/var/log/dme/log |
APIC 3de3 |
específico de ACI, registra las transacciones de DME |
nginx.bin.warnplus.log |
/var/log/dme/log |
APIC 3de3 |
Las opciones específicas de ACI contienen registros con advertencia+ gravedad |
¿Qué se ve afectado?
¿Cómo se experimenta la lentitud?
¿Cuándo se notó por primera vez la lentitud?
access.log es una función de NGINX y, por lo tanto, es independiente de APIC. Cada línea representa 1 solicitud HTTP que el APIC recibió. Consulte este registro para comprender el uso de NGINX de un APIC.
El formato predeterminado de access.log en ACI versión 5.2+:
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 línea representa una entrada access.log cuando se realiza un moquery -c fvTenant:
127.0.0.1 (-) - - [07/Apr/2022:20:10:59 +0000]"GET /api/class/fvTenant.xml HTTP/1.1" 200 15863 "-" "Python-urllib"
Mapa de la entrada access.log de ejemplo a log_format:
campo log_format |
Contenido del ejemplo |
Comentarios |
$remote_addr |
127.0.0.1 |
IP del host que envió esta solicitud |
$http_x_real_ip |
- |
IP del último solicitante si hay proxies en uso |
$remote_user |
- |
Generalmente no se utiliza. Marque nginx.bin.log para realizar un seguimiento del usuario que ha iniciado sesión para realizar solicitudes |
$time_local |
07/Abr/2022:20:10:59 +0000 |
Cuándo se procesó la solicitud |
$request |
GET /api/class/fvTenant.xml HTTP/1.1 |
Método Http (GET, POST, DELETE) y URI |
$status |
200 |
|
$body_bytes_sent |
1586 |
tamaño de carga útil de respuesta |
$http_referer |
- |
- |
$http_user_agent |
Python-urllib |
Qué tipo de cliente envió la solicitud |
Ráfagas de solicitudes de alta velocidad durante un período de tiempo prolongado:
Respuestas 4xx o 5xx coherentes:
El uso de memoria y CPU de NGINX se puede verificar con el comando top del 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
Un uso elevado de los recursos NGINX puede estar directamente relacionado con una alta tasa de solicitudes procesadas.
Una caída de NGINX no es típica para problemas de GUI de Slow APIC. Sin embargo, si se encuentran núcleos NGINX, adjúntelos a un TAC SR para su análisis. Consulte la guía de soporte técnico de ACI para conocer los pasos para comprobar los núcleos.
Si no se encuentran solicitudes rápidas pero un usuario sigue mostrando lentitud en la interfaz de usuario, el problema puede ser la latencia de cliente (navegador) a servidor (APIC).
En estos casos, valide la ruta de datos desde el navegador al APIC (distancia geográfica, VPN, etc.). Si es posible, implemente y pruebe el acceso desde un servidor de acceso directo ubicado en la misma región geográfica o Data Center que los APIC para aislar. Validar si otros usuarios presentan una latencia similar.
Todos los exploradores tienen la capacidad de validar solicitudes y respuestas HTTP mediante su kit de herramientas Desarrollo de explorador, normalmente en una ficha Red.
Esta herramienta se puede utilizar para validar la cantidad de tiempo que se tarda en cada etapa de las solicitudes originadas en el navegador, como se muestra en la imagen.
Ejemplo de un navegador que espera 1,1 minutos para que el APIC responda
Página Grupo de Políticas:
La GUI de Cisco bug ID CSCvx14621 - APIC se carga lentamente en las políticas IPG en la pestaña Fabric.
Interfaz en la página Inventario:
ID de bug de Cisco CSCvx90048 - La carga inicial de la ficha operativa "Configuración de interfaz física de capa 1" es larga/induce la "congelación".
Ciertos navegadores, como Firefox, permiten más conexiones web por host de forma predeterminada.
La VPN y la distancia al APIC aumentan la lentitud general de la interfaz de usuario, dadas las solicitudes del navegador del cliente y el tiempo de viaje de respuesta del APIC. Un cuadro de salto geográficamente local a los APIC reduce significativamente el tiempo de viaje del navegador a APIC.
Si un servidor web (NGINX en APIC) gestiona un gran volumen de solicitudes web largas, esto puede afectar al rendimiento de otras solicitudes recibidas en paralelo.
Esto es especialmente cierto en el caso de los sistemas que tienen bases de datos distribuidas, como los APIC. Una única solicitud de API puede requerir solicitudes y búsquedas adicionales enviadas a otros nodos del fabric, lo que puede dar lugar a tiempos de respuesta esperadamente más largos. Una ráfaga de estas solicitudes web largas en un período de tiempo reducido puede aumentar la cantidad de recursos necesarios y provocar tiempos de respuesta inesperadamente más largos. Además, las solicitudes recibidas pueden agotar el tiempo de espera (90 segundos), lo que se traduce en un comportamiento inesperado del sistema desde la perspectiva del usuario.
En 4.2(1)+, un usuario puede habilitar el "Cálculo del rendimiento del sistema", que realiza un seguimiento de las solicitudes de API y las resalta, que tardaron mucho tiempo en gestionarse.
El cálculo se puede habilitar desde Sistema - Configuración del sistema - Rendimiento del sistema
Una vez que se habilita "Cálculo", un usuario puede navegar a APIC específicos bajo Controladores para ver las solicitudes de API más lentas en los últimos 300 segundos.
Sistema - Controladores - Carpeta de controladores - APIC x - Tiempo de respuesta del servidor
Si tiene un escenario en el que la respuesta de la interfaz de usuario se ralentiza aleatoriamente pero no hay supervisión activa para saber con qué frecuencia ocurre, puede utilizar uno de los 2 enfoques
Opción 1: Un enfoque de suscripción para obtener el tiempo de respuesta del fabric de forma constante. Este paso requiere un servidor externo para ejecutar la secuencia de comandos que enviará la solicitud de suscripción y las actualizaciones.
Opción 2: Una secuencia de comandos a petición ejecutada en el propio APIC y las salidas masajeadas en LV. Esta puede ser una opción más fácil debido a la menor dependencia
Paso 1: (también mencionado anteriormente) Cambio global único en el APIC. No intrusivo pero bueno para seguir siempre las prácticas de cambio estándar.
Vaya a Sistema—>Configuración del sistema—>Rendimiento del sistema
Habilitar cálculos
Establecer umbral de respuesta en 50000ms
No cambie los demás parámetros
Una vez que se habilita "Cálculo", un usuario puede navegar a APIC específicos bajo Controladores para ver las solicitudes de API más lentas en los últimos 300 segundos.
Paso 2:
Ubicación de Git para apic_query_subscription_slow.py —> https://wwwin-github.cisco.com/CX-ACI/lv_accloganalyzer
python apic_query_subscription_slow.py -a <anyapicip> -u <username>
cargue el registro de sesión de terminal una vez cada 24 horas en el caso TAC
Paso 3: Recopile las salidas del TAC y los registros de acceso para los registros de eventos y las consultas de API completas que llegan las últimas 24 horas todos los días a una hora determinada.
Para los Fabrics ACI que ejecutan versiones anteriores a la 5.3/6.0(3d), hay una secuencia de comandos Collect TacOutput disponible dentro del repositorio aci-tac-scripts que sirve a una interfaz similar como el comando trigger tacoutput:
apic# /tmp/collectTacOutputs.sh Select corresponding numbers of objects to collect. Separate numbers with commas. *Note, topSystem, fabricNode, and firmwareARunning are automatically included. Ex: 1,2,3,4,5 1. faultInfo *collected unfiltered 2. faultRecord 3. eventRecord 4. aaaModLR 5. polDeploymentRecord 6. epRecord 7. healthRecord 8. healthInst *collected unfiltered Enter selections: 3 Enter record start date (format: 2019-12-15T00:00:00) *default is one month prior to current date: 2019-12-25T00:00:00 Enter record end date (format: 2019-12-15T00:00:00) *default is current date: 2020-01-05T00:00:00 ...script collection runs...
Extraiga el archivo tacoutputxx.tgz y cárguelo en el caso
Nota: Para los fabric de ACI que ejecutan la versión 5.3/6.0(3d) y versiones posteriores, la salida de accionamiento proporciona una interfaz de recopilación simplificada para eventos, fallos, auditoría y otras salidas de resolución de problemas). No es necesario que utilice el guión.
## Desde cualquier APIC, .
mkdir /data/techsupport/apicname_srnumber
cd /var/log/dme/log
cp access* /data/techsupport/apicname_srnumber
cd /data/techsupport/
tar -zcvfapicname_srnumber.tgz /data/techsupport/apicname_srnumber
upload adapicname_srnumber.tgz al caso
Ejemplo de laboratorio para la ejecución de scripts desde un host externo:
(my-virtual-env-3.7.13) root@aci-fab1-esxi2-oob:~# python apic_query_subscription_slowui.py -a 10.122.141.98 -u rgatti
Logging into APIC 10.122.141.98
rgatti password:
********** WebSocket Subscription URIS and IDs **********
WebSocket Subscription Status Code: 101
https://10.122.141.98/api/class/commRequestData.json?subscription=yes
- Subscription ID: 72059449487065089
********** WebSocket Subscription Messages **********
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","clientHostname":"10.122.141.126","dn":"topology/pod-1/node-1/web/apiAvgResp/reqData-1","method":"GET","modTs":"2024-08-06T13:15:07.857-04:00","responseSize":"2313","responseTime":"1017","rn":"","startTime":"2024-08-06T13:12:38.334-04:00","status":"modified","url":"/api/node/class/firmwareOSource.json"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","clientHostname":"10.26.164.186","dn":"topology/pod-1/node-1/web/apiAvgResp/reqData-2","method":"GET","modTs":"2024-08-06T13:15:07.857-04:00","responseSize":"252","responseTime":"1007","rn":"","startTime":"2024-08-06T13:13:39.145-04:00","status":"modified","url":"/api/node/mo/uni/infra/nodecfgcont/node-103.json"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","clientHostname":"10.26.161.138","dn":"topology/pod-1/node-1/web/apiAvgResp/reqData-3","modTs":"2024-08-06T13:15:07.857-04:00","responseTime":"788","rn":"","startTime":"2024-08-06T13:14:24.351-04:00","status":"modified"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","clientHostname":"10.24.131.101","dn":"topology/pod-1/node-1/web/apiAvgResp/reqData-4","modTs":"2024-08-06T13:15:07.857-04:00","responseTime":"784","rn":"","startTime":"2024-08-06T13:14:41.169-04:00","status":"modified"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","clientHostname":"10.25.130.136","dn":"topology/pod-1/node-1/web/apiAvgResp/reqData-5","modTs":"2024-08-06T13:15:07.857-04:00","responseTime":"783","rn":"","startTime":"2024-08-06T13:12:29.028-04:00","status":"modified"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","dn":"topology/pod-1/node-2/web/apiAvgResp/reqData-1","modTs":"2024-08-06T13:15:51.533-04:00","responseSize":"3926","responseTime":"1013","rn":"","startTime":"2024-08-06T13:12:22.387-04:00","status":"modified","url":"/api/node/class/topSystem.json"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","dn":"topology/pod-1/node-2/web/apiAvgResp/reqData-2","modTs":"2024-08-06T13:15:51.533-04:00","responseSize":"905","responseTime":"208","rn":"","startTime":"2024-08-06T13:12:59.783-04:00","status":"modified","url":"/api/node/class/dnsProv.json"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","dn":"topology/pod-1/node-2/web/apiAvgResp/reqData-3","modTs":"2024-08-06T13:15:51.533-04:00","responseSize":"905","responseTime":"114","rn":"","startTime":"2024-08-06T13:10:59.781-04:00","status":"modified","url":"/api/node/class/dnsProv.json"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","dn":"topology/pod-1/node-2/web/apiAvgResp/reqData-4","modTs":"2024-08-06T13:15:51.533-04:00","responseSize":"905","responseTime":"98","rn":"","startTime":"2024-08-06T13:14:59.782-04:00","status":"modified","url":"/api/node/class/dnsProv.json"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","dn":"topology/pod-1/node-2/web/apiAvgResp/reqData-5","modTs":"2024-08-06T13:15:51.533-04:00","responseSize":"1075","responseTime":"46","rn":"","startTime":"2024-08-06T13:14:26.565-04:00","status":"modified"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","dn":"topology/pod-2/node-3/web/apiAvgResp/reqData-1","modTs":"2024-08-06T13:16:19.490-04:00","responseTime":"2392","rn":"","startTime":"2024-08-06T13:11:44.143-04:00","status":"modified"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","dn":"topology/pod-2/node-3/web/apiAvgResp/reqData-2","modTs":"2024-08-06T13:16:19.490-04:00","responseTime":"2389","rn":"","startTime":"2024-08-06T13:15:24.604-04:00","status":"modified"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","dn":"topology/pod-2/node-3/web/apiAvgResp/reqData-3","modTs":"2024-08-06T13:16:19.490-04:00","responseTime":"2384","rn":"","startTime":"2024-08-06T13:13:38.231-04:00","status":"modified"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","dn":"topology/pod-2/node-3/web/apiAvgResp/reqData-4","modTs":"2024-08-06T13:16:19.490-04:00","responseTime":"2384","rn":"","startTime":"2024-08-06T13:13:14.402-04:00","status":"modified"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","dn":"topology/pod-2/node-3/web/apiAvgResp/reqData-5","modTs":"2024-08-06T13:16:19.490-04:00","responseTime":"2383","rn":"","startTime":"2024-08-06T13:14:24.584-04:00","status":"modified"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","clientHostname":"10.26.161.138","dn":"topology/pod-1/node-1/web/apiAvgResp/reqData-1","method":"POST","modTs":"2024-08-06T13:20:07.951-04:00","responseSize":"0","responseTime":"784","rn":"","startTime":"2024-08-06T13:19:24.361-04:00","status":"modified","url":"/uitelemetry/clicks"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","clientHostname":"10.25.130.136","dn":"topology/pod-1/node-1/web/apiAvgResp/reqData-2","method":"POST","modTs":"2024-08-06T13:20:07.951-04:00","responseSize":"0","responseTime":"783","rn":"","startTime":"2024-08-06T13:18:34.821-04:00","status":"modified","url":"/uitelemetry/clicks"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","clientHostname":"10.25.130.136","dn":"topology/pod-1/node-1/web/apiAvgResp/reqData-3","modTs":"2024-08-06T13:20:07.951-04:00","responseTime":"781","rn":"","startTime":"2024-08-06T13:17:03.705-04:00","status":"modified"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","clientHostname":"10.25.130.136","dn":"topology/pod-1/node-1/web/apiAvgResp/reqData-4","modTs":"2024-08-06T13:20:07.951-04:00","responseTime":"781","rn":"","startTime":"2024-08-06T13:18:04.530-04:00","status":"modified"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","clientHostname":"10.26.161.138","dn":"topology/pod-1/node-1/web/apiAvgResp/reqData-5","modTs":"2024-08-06T13:20:07.951-04:00","responseTime":"781","rn":"","startTime":"2024-08-06T13:18:24.354-04:00","status":"modified"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","dn":"topology/pod-1/node-2/web/apiAvgResp/reqData-1","modTs":"2024-08-06T13:20:51.568-04:00","responseSize":"905","responseTime":"1018","rn":"","startTime":"2024-08-06T13:16:59.784-04:00","status":"modified","url":"/api/node/class/dnsProv.json"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","dn":"topology/pod-1/node-2/web/apiAvgResp/reqData-2","modTs":"2024-08-06T13:20:51.568-04:00","responseSize":"405","responseTime":"148","rn":"","startTime":"2024-08-06T13:18:01.471-04:00","status":"modified","url":"/api/node/class/proxyServer.json"}}}]}
{"subscriptionId":["72059449487065089"],"imdata":[{"commRequestData":{"attributes":{"childAction":"","clientHostname":"192.168.1.1","dn":"topology/pod-1/node-2/web/apiAvgResp/reqData-3","modTs":"2024-08-06T13:20:51.568-04:00","responseSize":"3390","responseTime":"112","rn":"","startTime":"2024-08-06T13:17:29.488-04:00","status":"modified","url":"/api/node/class/pkiFabricSelfCAEp.json"}}}]}
En APIC CLI
bash
<paste the below directly on the APIC cli - modify the filename. The script will run for 1 hr>
let i=1
while [ $i -lt 60 ]
do
date
date >> /data/techsupport/commRequestData.txt
moquery -c commRequestData >> /data/techsupport/commRequestData_<date_time>.txt
sleep 60
let i=i+1
done
El resultado no es fácil de leer, que se puede aplicar como un masaje usando el siguiente script en LV.
Ubicación de Git para commrequests_processing.py —> https://wwwin-github.cisco.com/CX-ACI/lv_accloganalyzer
Copie la secuencia de comandos en la carpeta de secuencias de comandos local (por ejemplo, /users/rgatti/scripts).
Cómo ejecutar:
users/rgatti/dnld_695998256/cv1/jul14_2025/commrequestdata --> This is where we saved the commRequestData_<date_time>.txt file
python3 /users/rgatti/scripts/commrequests_processing.py -f commRequestData_jul14_4pm.txt > commRequestData_jul14_4pm.txt.formatted
Ejemplo: responseTime se utiliza para ordenar con el tiempo de respuesta más alto mostrado en la parte superior
rgatti@aci-logviewer2:~/dnld_695998256/cv1/jul14_2025/commrequestdata$ less commRequestData_jul14_4pm.txt.formatted
Processing file: commRequestData_jul14_4pm.txt
clientHostname | dn | method | responseCode | responseSize | responseTime | startTime | url
---------------+-------------------------------------------------+--------+--------------+--------------+--------------+-------------------------------+------------------------------------------------------------------------------------
127.0.0.1 | topology/pod-2/node-5/web/apiAvgResp/reqData-1 | GET | 200 | 14255310 | 31123 | 2025-07-14T15:08:38.598-05:00 | /api/class/fvRInfoHolder.json
127.0.0.1 | topology/pod-2/node-5/web/apiAvgResp/reqData-1 | GET | 200 | 14255310 | 31123 | 2025-07-14T15:08:38.598-05:00 | /api/class/fvRInfoHolder.json
127.0.0.1 | topology/pod-2/node-1/web/apiAvgResp/reqData-1 | GET | 200 | 17050 | 29660 | 2025-07-14T15:08:39.262-05:00 | /api/node/class/fabricPathEp.json
127.0.0.1 | topology/pod-2/node-1/web/apiAvgResp/reqData-2 | GET | 200 | 111529 | 29658 | 2025-07-14T15:08:39.261-05:00 | /api/class/mgmtRsInBStNode.json
127.0.0.1 | topology/pod-2/node-1/web/apiAvgResp/reqData-3 | GET | 200 | 474 | 29631 | 2025-07-14T15:08:39.258-05:00 | /api/class/mgmtInstP.json
127.0.0.1 | topology/pod-2/node-4/web/apiAvgResp/reqData-1 | GET | 200 | 13637 | 28933 | 2025-07-14T15:08:38.597-05:00 | /api/class/faultDelegate.json
127.0.0.1 | topology/pod-2/node-2/web/apiAvgResp/reqData-2 | GET | 200 | 530 | 28243 | 2025-07-14T15:08:39.274-05:00 | /api/class/vzRsDenyRule.json
127.0.0.1 | topology/pod-2/node-2/web/apiAvgResp/reqData-1 | GET | 200 | 30 | 28243 | 2025-07-14T15:08:39.273-05:00 | /api/class/fvRsProtBy.json
127.0.0.1 | topology/pod-2/node-2/web/apiAvgResp/reqData-2 | GET | 200 | 530 | 28243 | 2025-07-14T15:08:39.274-05:00 | /api/class/vzRsDenyRule.json
127.0.0.1 | topology/pod-2/node-2/web/apiAvgResp/reqData-1 | GET | 200 | 30 | 28243 | 2025-07-14T15:08:39.273-05:00 | /api/class/fvRsProtBy.json
127.0.0.1 | topology/pod-2/node-1/web/apiAvgResp/reqData-1 | GET | 200 | 18426168 | 27107 | 2025-07-14T15:40:33.874-05:00 | /api/mo/uni.xml
127.0.0.1 | topology/pod-2/node-1/web/apiAvgResp/reqData-1 | GET | 200 | 18426168 | 27107 | 2025-07-14T15:40:33.874-05:00 | /api/mo/uni.xml
127.0.0.1 | topology/pod-2/node-1/web/apiAvgResp/reqData-4 | GET | 200 | 18429959 | 25516 | 2025-07-14T15:08:46.841-05:00 | /api/mo/uni.xml
127.0.0.1 | topology/pod-2/node-1/web/apiAvgResp/reqData-2 | GET | 200 | 719780 | 24794 | 2025-07-14T15:40:35.346-05:00 | /api/class/fabricPathEp.json
127.0.0.1 | topology/pod-2/node-1/web/apiAvgResp/reqData-2 | GET | 200 | 719780 | 24794 | 2025-07-14T15:40:35.346-05:00 | /api/class/fabricPathEp.json
127.0.0.1 | topology/pod-2/node-1/web/apiAvgResp/reqData-5 | GET | 200 | 18431710 | 24604 | 2025-07-14T15:08:56.167-05:00 | /api/mo/uni.xml
127.0.0.1 | topology/pod-2/node-1/web/apiAvgResp/reqData-3 | GET | 200 | 452 | 23720 | 2025-07-14T15:40:36.395-05:00 | /api/class/mgmtOoB.json
127.0.0.1 | topology/pod-2/node-1/web/apiAvgResp/reqData-3 | GET | 200 | 452 | 23720 | 2025-07-14T15:40:36.395-05:00 | /api/class/mgmtOoB.json
127.0.0.1 | topology/pod-2/node-1/web/apiAvgResp/reqData-6 | GET | 200 | 18430138 | 23578 | 2025-07-14T15:08:49.945-05:00 | /api/mo/uni.xml
127.0.0.1 | topology/pod-2/node-1/web/apiAvgResp/reqData-1 | GET | 200 | 14255310 | 21159 | 2025-07-14T15:38:59.233-05:00 | /api/class/fvRInfoHolder.json
127.0.0.1 | topology/pod-2/node-1/web/apiAvgResp/reqData-1 | GET | 200 | 14255310 | 21159 | 2025-07-14T15:38:59.233-05:00 | /api/class/fvRInfoHolder.json
Disponible en 4.2(1)+, un usuario puede habilitar el acelerador de solicitudes contra HTTP y HTTPS de forma independiente.
Nota: a partir de la versión 6.1(2) de ACI, la velocidad máxima admitida para esta función se redujo a 40 solicitudes por segundo (r/s) o a 2400 solicitudes por minuto (r/m) desde 10 000 r/m.
Fabric - Políticas de fabric - Carpeta de políticas - Carpeta de acceso a la gestión - predeterminada
Cuando está 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 regla general, el acelerador de solicitudes solo sirve para proteger el servidor (APIC) de los síntomas similares a DDOS inducidos por clientes agresivos con consultas. Comprender y aislar el cliente agresivo en la solicitud para las soluciones finales en la lógica de aplicación/script.
Revisión | Fecha de publicación | Comentarios |
---|---|---|
3.0 |
20-Aug-2025
|
Límites del acelerador NGINX de la versión 6.1(2) de la llamada |
2.0 |
04-Jan-2023
|
Se añadió la sección de tiempo de respuesta del sistema y la sección de aceleración de solicitud NGINX |
1.0 |
17-May-2022
|
Versión inicial |