Supervisar el rendimiento de la red para ajustes ENA en la instancia de EC2
El controlador de Elastic Network Adapter (ENA) publica métricas de rendimiento de la red desde las instancias en las que están habilitadas. Puede utilizar estas métricas para solucionar problemas de rendimiento de instancias, elegir el tamaño de instancia adecuado para una carga de trabajo, planificar actividades de escalado de forma proactiva y comparar las aplicaciones a fin de determinar si maximizan el rendimiento disponible en una instancia.
Amazon EC2 define los máximos de red en el nivel de instancia para garantizar una experiencia de redes de alta calidad, incluido un rendimiento de red constante en todos los tamaños de instancia. AWS proporciona máximos de lo siguiente para cada instancia:
-
Capacidad de ancho de banda: cada instancia de EC2 tiene un ancho de banda máximo para el tráfico entrante y saliente agregado, según el tamaño y el tipo de instancias. Algunas instancias utilizan un mecanismo de créditos de E/S de red para asignar el ancho de banda de la red en función del uso de ancho de banda medio. Amazon EC2 también tiene un ancho de banda máximo para el tráfico hacia AWS Direct Connect e Internet. Para obtener más información, consulte Ancho de banda de red de instancias de Amazon EC2.
-
Rendimiento de paquete por segundo (PPS): cada instancia de EC2 tiene un rendimiento de PPS máximo, según el tamaño y el tipo de instancias.
-
Conexiones rastreadas: el grupo de seguridad realiza el seguimiento de cada conexión establecida para asegurarse de que los paquetes devueltos se entreguen como se espera. Existe un número máximo de conexiones que se pueden rastrear por instancia. Para obtener más información, consulte Seguimiento de conexiones del grupo de seguridad de Amazon EC2
-
El acceso al servicio de enlace local: Amazon EC2 proporciona un PPS máximo por interfaz de red para el tráfico a servicios como el servicio de DNS, el servicio de metadatos de instancia y el Servicio de sincronización temporal de Amazon.
Cuando el tráfico de red de una instancia supera un máximo, AWS da forma al tráfico que supera el máximo al poner en cola y, a continuación, soltar paquetes de red. Puede monitorear cuando el tráfico supera un máximo mediante las métricas de rendimiento de la red. Estas métricas informan, en tiempo real, el impacto en el tráfico de red y los posibles problemas de rendimiento de la red.
Contenido
Requisitos
instancias de Linux
-
Instale el controlador de ENA de versión 2.2.10 o posterior. Para verificar la versión instalada, utilice el comando ethtool. En el siguiente ejemplo, la versión cumple el requisito mínimo.
[ec2-user ~]$
ethtool -i eth0 | grep version
version: 2.2.10
Para actualizar el controlador de ENA, consulte Red mejorada.
-
Para importar estas métricas a Amazon CloudWatch, instale el agente CloudWatch. Para obtener más información, consulte Recopilar métricas de rendimiento de la red en Guía del usuario de Amazon CloudWatch.
-
Para que tenga compatibilidad con la métrica
conntrack_allowance_available
, instale la versión 2.8.1 del controlador ENA.
instancias de Windows
-
Instale el controlador de ENA de versión 2.2.2 o posterior. Para verificar la versión instalada, utilice el administrador de dispositivos de la siguiente manera.
-
Abra el administrador de dispositivos mediante la ejecución de
devmgmt.msc
. -
Expanda Adaptadores de red.
-
Elija Amazon Elastic Network Adapter, Propiedades.
-
En la pestaña Controlador, busque Versión del controlador.
Para actualizar el controlador de ENA, consulte Red mejorada.
-
-
Para importar estas métricas a Amazon CloudWatch, instale el agente CloudWatch. Para obtener más información, consulte Recopilar métricas avanzadas de red en Guía del usuario de Amazon CloudWatch.
Métricas para el controlador de ENA
El controlador de ENA entrega las siguientes métricas a la instancia en tiempo real. Proporcionan el número acumulado de paquetes en cola o eliminado en cada interfaz de red desde el último restablecimiento del controlador.
Métrica | Descripción | Compatible con |
---|---|---|
bw_in_allowance_exceeded |
El número de paquetes formados en cola o eliminados el ancho de banda agregado entrante superó el máximo de la instancia. |
Todos los tipos de instancias |
bw_out_allowance_exceeded |
El número de paquetes en cola o eliminados porque el ancho de banda agregado saliente superó el máximo de la instancia. |
Todos los tipos de instancias |
conntrack_allowance_exceeded |
El número de paquetes eliminados porque el seguimiento de conexiones superó el máximo de la instancia y no se pudieron establecer nuevas conexiones. Esto puede provocar la pérdida de paquetes para el tráfico hacia o desde la instancia. |
Todos los tipos de instancias |
conntrack_allowance_available |
La cantidad de conexiones rastreadas que puede establecer la instancia antes de alcanzar el límite de conexiones rastreadas de ese tipo de instancia. | Solo en instancias basadas en Nitro |
linklocal_allowance_exceeded |
El número de paquetes eliminados porque el PPS del tráfico a los servicios proxy locales superó el máximo para la interfaz de red. Esto afecta al tráfico hacia el servicio de DNS, el servicio de metadatos de instancia y el Servicio de sincronización temporal de Amazon. |
Todos los tipos de instancias |
pps_allowance_exceeded |
El número de paquetes en cola o eliminados porque el PPS bidireccional superó el máximo de la instancia. Este límite también cuenta las caídas de fragmentos de salida que superen los 1024 PPS por ENI. |
Todos los tipos de instancias |
Ver las métricas de rendimiento de la red de la instancia de
El procedimiento que utiliza depende del sistema operativo de la instancia.
Puede publicar métricas en sus herramientas favoritas para visualizar los datos de métricas. Por ejemplo, puede publicar las métricas en Amazon CloudWatch mediante el agente de CloudWatch. El agente permite seleccionar métricas individuales y controlar la publicación.
También puede utilizar ethtool para recuperar las métricas de cada interfaz de red, como eth0, de la siguiente manera.
[ec2-user ~]$
ethtool -S
eth0
bw_in_allowance_exceeded: 0 bw_out_allowance_exceeded: 0 pps_allowance_exceeded: 0 conntrack_allowance_exceeded: 0 linklocal_allowance_exceeded: 0 conntrack_allowance_available: 136812
Puede ver las métricas con cualquier consumidor de contadores de rendimiento de Windows. Los datos se pueden analizar de acuerdo con el manifiesto EnaPerfCounters. Este es un archivo XML que define el proveedor de contador de rendimiento y sus conjuntos de contadores.
Instalación del manifiesto
Si ha iniciado la instancia con una AMI que contiene el controlador de ENA 2.2.2 o posterior o utilizado el script de instalación en el paquete de controladores para el controlador de ENA 2.2.2, el manifiesto ya está instalado. Para instalar el manifiesto manualmente, siga los pasos siguientes:
-
Elimine el manifiesto existente mediante el siguiente comando:
unlodctr /m:EnaPerfCounters.man
-
Copie el archivo del manifiesto,
EnaPerfCounters.man
, del paquete de instalación del controlador a%SystemRoot%\System32\drivers
. -
Instale el nuevo manifiesto mediante el siguiente comando:
lodctr /m:EnaPerfCounters.man
Para ver métricas mediante el Monitor de rendimiento
-
Abra el Monitor de rendimiento.
-
Presione Ctrl+N para agregar nuevos contadores.
-
Elija Configuración de paquetes de ENA en la lista.
-
Seleccione las instancias que desea monitorear y elija Agregar.
-
Seleccione OK.
Métricas para ENA Express
ENA Express funciona con la tecnología Scalable Reliable Datagram (SRD) de AWS. SRD es un protocolo de transporte de red de alto rendimiento que utiliza el enrutamiento dinámico para aumentar el rendimiento y minimizar la latencia de cola. Si ha habilitado ENA Express para los adjuntos de interfaz de red tanto en la instancia de envío como en la de recepción, puede utilizar las métricas de ENA Express para asegurarse de que sus instancias aprovechen al máximo las mejoras de rendimiento que proporciona la tecnología SRD. Por ejemplo:
-
Evalúe sus recursos para asegurarse de que tengan capacidad suficiente para establecer más conexiones de SRD.
-
Identifique dónde hay posibles problemas que impidan que los paquetes salientes aptos utilicen SRD.
-
Calcule el porcentaje de tráfico saliente que usa SRD para la instancia.
-
Calcule el porcentaje de tráfico entrante que usa SRD para la instancia.
nota
Para generar métricas, utilice la versión 2.8 o superior del controlador.
Para ver una lista de las métricas para su instancia de Linux que se filtran para ENA Express, ejecute el comando ethtool para su interfaz de red (que aquí se muestra como eth0
). Tome nota del valor de la métrica ena_srd_mode
.
[ec2-user ~]$
ethtool -S
eth0
| grep ena_srdNIC statistics: ena_srd_mode: 1 ena_srd_tx_pkts: 0 ena_srd_eligible_tx_pkts: 0 ena_srd_rx_pkts: 0 ena_srd_resource_utilization: 0
Las siguientes métricas están disponibles para todas las instancias que tienen habilitada ENA Express.
- ena_srd_mode
-
Se describen qué características de ENA Express están habilitadas. Los valores son los siguientes:
-
0
= ENA Express desactivado, UDP desactivado -
1
= ENA Express activado, UDP desactivado -
2
= ENA Express desactivado, UDP activadonota
Esto solo ocurre cuando ENA Express se habilitó originalmente y UDP se configuró para usarlo. El valor anterior se retiene para el tráfico UDP.
-
3
= ENA Express activado, UDP activado
-
- ena_srd_eligible_tx_pkts
-
El número de red de la siguiente manera:
-
Se admiten los tipos de instancia de envío y recepción. Para obtener más información, consulte la tabla Tipos de instancia compatibles con ENA Express.
-
Tanto las instancias de envío como las de recepción deben tener configurado ENA Express.
-
Las instancias de envío y recepción deben ejecutarse en la misma zona de disponibilidad.
-
La ruta de red entre las instancias no debe incluir cajas de middleware. ENA Express no admite actualmente cajas de middleware.
nota
La métrica de elegibilidad de ENA Express abarca los requisitos de origen y destino, y la red entre los dos puntos de conexión. Los paquetes aptos aún pueden ser descalificados tras su recuento. Por ejemplo, si un paquete apto supera el límite de la unidad de transmisión máxima (MTU), vuelve a la transmisión ENA estándar, aunque el paquete se sigue mostrando como apto en el contador.
-
- ena_srd_tx_pkts
-
El número de paquetes SRD transmitidos en un periodo determinado.
- ena_srd_rx_pkts
-
El número de paquetes SRD recibidos en un periodo determinado.
- ena_srd_resource_utilization
-
El porcentaje de uso máximo de memoria permitido para conexiones SRD simultáneas que ha consumido la instancia.
Para confirmar si la transmisión de paquetes utiliza SRD, puede comparar el número de paquetes que cumplen los requisitos (métrica ena_srd_eligible_tx_pkts
) con el número de paquetes SRD transmitidos (métrica ena_srd_tx_pkts
) durante un periodo de tiempo determinado.
Tráfico de salida (paquetes salientes)
Para asegurarse de que su tráfico de salida utiliza SRD como se espera, compare el número de paquetes SRD aptos (ena_srd_eligible_tx_pkts
) con el número de paquetes SRD enviados (ena_srd_tx_pkts
) durante un periodo de tiempo determinado.
Las diferencias significativas entre el número de paquetes aptos y el número de paquetes SRD enviados suelen deberse a problemas de utilización de recursos. Cuando la tarjeta de red conectada a la instancia agota sus recursos máximos, o si los paquetes superan el límite de MTU, los paquetes aptos no pueden transmitirse a través de SRD y deben volver a la transmisión ENA estándar. Los paquetes también pueden experimentar esto durante migraciones en directo o actualizaciones de servidores en directo. Se requiere una solución de problemas adicionales para determinar la causa raíz.
nota
Puede ignorar las pequeñas diferencias ocasionales entre el número de paquetes aptos y el número de paquetes de SRD. Esto puede ocurrir cuando su instancia establece una conexión con otra instancia para el tráfico SRD, por ejemplo.
Para averiguar qué porcentaje de su tráfico de salida total durante un periodo de tiempo determinado utiliza SRD, compare el número de paquetes SRD enviados (ena_srd_tx_pkts
) con el número total de paquetes enviados para la instancia (NetworkPacketOut
) durante ese tiempo.
Tráfico de entrada (paquetes entrantes)
Para saber qué porcentaje del tráfico de entrada utiliza SRD, compare el número de paquetes SRD recibidos (ena_srd_rx_pkts
) durante un periodo de tiempo determinado con el número total de paquetes recibidos para la instancia (NetworkPacketIn
) durante ese tiempo.
Uso de los recursos
El uso de los recursos se basa en el número de conexiones SRD simultáneas que una única instancia puede mantener en un momento determinado. La métrica de uso de recursos (ena_srd_resource_utilization
) hace un seguimiento del uso actual de la instancia. A medida que la utilización se acerque al 100 %, es de esperar que se produzcan problemas de rendimiento. ENA Express retrocede de la transmisión SRD a la transmisión ENA estándar y aumenta la posibilidad de que se pierdan paquetes. Un alto uso de recursos es un indicio de que llegó el momento de escalar horizontalmente la instancia para mejorar el rendimiento de la red.
nota
Cuando el tráfico de red de una instancia supera un máximo, AWS da forma al tráfico que supera el máximo al poner en cola y, a continuación, soltar paquetes de red.
Persistencia
Las métricas de entrada y salida se acumulan mientras ENA Express está habilitado para la instancia. Las métricas dejan de acumularse si ENA Express está desactivado, pero persisten mientras la instancia sigue en ejecución. Las métricas se reinician si la instancia se reinicia o se finaliza, o si la interfaz de red se desvincula de la instancia.
Métricas de rendimiento de la red con el controlador de DPDK para ENA
El controlador de ENA, versión 2.2.0 y posterior, admite informes de métricas de red. DPDK 20.11 incluye el controlador de ENA 2.2.0 y es la primera versión de DPDK que admite esta característica.
Puede utilizar una aplicación de ejemplo para ver las estadísticas de DPDK. Para comenzar una versión interactiva de la aplicación de ejemplo, ejecute el siguiente comando.
./app/dpdk-testpmd -- -i
Dentro de esta sesión interactiva, puede escribir un comando para recuperar estadísticas extendidas de un puerto. El siguiente comando de ejemplo recupera las estadísticas del puerto 0.
show port xstats 0
A continuación se muestra un ejemplo de una sesión interactiva con la aplicación de ejemplo de DPDK.
[root@ip-192.0.2.0 build]# ./app/dpdk-testpmd -- -i EAL: Detected 4 lcore(s) EAL: Detected 1 NUMA nodes EAL: Multi-process socket /var/run/dpdk/rte/mp_socket EAL: Selected IOVA mode 'PA' EAL: Probing VFIO support... EAL: Invalid NUMA socket, default to 0 EAL: Invalid NUMA socket, default to 0 EAL: Probe PCI driver: net_ena (1d0f:ec20) device: 0000:00:06.0 (socket 0) EAL: No legacy callbacks, legacy socket not created Interactive-mode selected Port 0: link state change event testpmd: create a new mbuf pool <mb_pool_0>: n=171456, size=2176, socket=0 testpmd: preferred mempool ops selected: ring_mp_mc Warning! port-topology=paired and odd forward ports number, the last port will pair with itself. Configuring Port 0 (socket 0) Port 0: 02:C7:17:A2:60:B1 Checking link statuses... Done Error during enabling promiscuous mode for port 0: Operation not supported - ignore testpmd> show port xstats 0 ###### NIC extended statistics for port 0 rx_good_packets: 0 tx_good_packets: 0 rx_good_bytes: 0 tx_good_bytes: 0 rx_missed_errors: 0 rx_errors: 0 tx_errors: 0 rx_mbuf_allocation_errors: 0 rx_q0_packets: 0 rx_q0_bytes: 0 rx_q0_errors: 0 tx_q0_packets: 0 tx_q0_bytes: 0 wd_expired: 0 dev_start: 1 dev_stop: 0 tx_drops: 0 bw_in_allowance_exceeded: 0 bw_out_allowance_exceeded: 0 pps_allowance_exceeded: 0 conntrack_allowance_exceeded: 0 linklocal_allowance_exceeded: 0 rx_q0_cnt: 0 rx_q0_bytes: 0 rx_q0_refill_partial: 0 rx_q0_bad_csum: 0 rx_q0_mbuf_alloc_fail: 0 rx_q0_bad_desc_num: 0 rx_q0_bad_req_id: 0 tx_q0_cnt: 0 tx_q0_bytes: 0 tx_q0_prepare_ctx_err: 0 tx_q0_linearize: 0 tx_q0_linearize_failed: 0 tx_q0_tx_poll: 0 tx_q0_doorbells: 0 tx_q0_bad_req_id: 0 tx_q0_available_desc: 1023 testpmd>
Para obtener más información acerca de la aplicación de ejemplo y su uso a fin de recuperar estadísticas ampliadas. consulte la Guía del usuario de la aplicación de Testpmd
Métricas en instancias que ejecutan FreeBSD
A partir de la versión 2.3.0, el controlador FreeBSD de ENA admite la recopilación de métricas de rendimiento de la red en instancias que ejecutan FreeBSD. Para habilitar la recopilación de métricas de FreeBSD, ingrese el siguiente comando y establezca el intervalo
en un valor entre 1 y 3600. Esto especifica la frecuencia, en segundos, para recopilar métricas de FreeBSD.
sysctl dev.ena.
network_interface
.eni_metrics.sample_interval=interval
Por ejemplo, el siguiente comando configura el controlador para recopilar métricas de FreeBSD en la interfaz de red 1 cada 10 segundos:
sysctl dev.ena.1.eni_metrics.sample_interval=10
Para desactivar la recopilación de métricas de FreeBSD, puede ejecutar el comando anterior y especificar 0
como el intervalo
.
Después de habilitar la recopilación de métricas de FreeBSD, puede recuperar el último conjunto de métricas recopiladas mediante la ejecución del siguiente comando.
sysctl dev.ena.
network_interface
.eni_metrics