Requisitos de hardware para el procesamiento de paquetes de velocidad de línea de 10Gbps

0

¿Cómo calculo la potencia de caballo requerida para los escenarios de procesamiento de paquetes en el peor de los casos?

Primero, un poco más de fondo, estoy creando un dispositivo para el análisis de paquetes. Mi caja de prueba actualmente se ejecuta en Linux con un conjunto de chips Intel y utilizando DPDK para la captura de paquetes. Quiero soportar al menos enlaces de 10Gbps.

Sin contar las tramas gigantes, la velocidad de línea para los paquetes Ethernet en un enlace de 10 Gbps está entre 812,740 y 14,880,960 paquetes por segundo. Entonces, cuando digo el peor de los casos, eso implica tener que procesar el tamaño máximo de carga útil. Para mantener el procesamiento de velocidad de línea de 812,740 pp / s, ¿qué tipo de hardware es necesario? Sé que las analíticas reales desempeñarán un papel importante, pero aún no he optimizado ni perfilado los algoritmos. Sin embargo, obtener al menos una línea de base de hardware mínima será útil.

Entonces, lo que estoy tratando de entender es la pieza de hardware y tengo muchas preguntas; x86 vs ARM vs MIPS, velocidad de CPU y núcleos, configuración de memoria y velocidad de bus, configuración de almacenamiento temporal en disco, etc.

¿Qué tipo de configuraciones mínimas de hardware pueden admitir 812,740 pp / s en un enlace de 10Gbps?

    
pregunta user50207

3 respuestas

1

Este trabajo (tanto para enviar como para capturar) ya está bien detallado y está disponible.

Intel tiene un demo disponible con todo el código y soporte.

Por supuesto, simplemente puede comprar un Interfaz Intel 10Gbps por alrededor de $ 300 y usa una PC convencional (i7 con PCIe 3.0) con muchas DRam o una matriz de discos para realizar tus capturas.
Si tiene la intención de realizar el procesamiento de paquetes en línea, probablemente sea mejor usar una configuración de memoria muy grande (128 GB) y reservar 100 GB como disco RAM. De esta manera, puede procesar y mover datos usando mem-cpy o mem-map simples para mover datos.

    
respondido por el Jack Creasey
0

Realmente depende de lo que intentes hacer con los paquetes. El simple hecho de traerlos desde el cable se puede hacer con DPDK y una NIC compatible en cualquier CPU Core i7 relativamente reciente. Lo que sea que intente hacer con los paquetes después de haberlos recogido probablemente será su cuello de botella.

Además, es la longitud mínima de los paquetes lo que va a estresar más al sistema, ya que, en general, usted verá los encabezados de cada paquete solamente, y esto depende más de la tasa de llegada de paquetes que de cualquier otra cosa (tamaño del paquete , tarifa de línea, etc.). Si pretende ver más que solo los encabezados, entonces es posible que deba considerar el equilibrio de carga en varios hosts. Esto ya está asumiendo que está equilibrando la carga a través de varios núcleos de CPU y tal vez incluso de varios sockets de CPU.

Si está intentando construir hardware personalizado por alguna razón, entonces probablemente debería buscar algo basado en FPGA. Sin embargo, de su descripción no queda claro si esto sería mejor o peor que simplemente usar un servidor comercial razonablemente potente que ejecute DPDK.

    
respondido por el alex.forencich
0

Utilice los FPGA de velocidad GHZ para capturar y convertir a datos paralelos, luego, como lo menciona Photon, rellénelo en un búfer de memoria profunda. Puede ser un FIFO ultrarrápido que tiene indicadores vacíos, medio llenos y llenos que una CPU rápida puede leer y volver a empaquetar los datos en un formato utilizable.

Sugiero que los datos en serie se conviertan a datos de 64 bits de ancho que aún no estén alineados, pero primero desea capturarlos en un formato paralelo para evitar un cuello de botella o tener que usar comandos de retroceso. Utilice los FIFO de hardware de 64 bits rápidos para el búfer no alineado y una CPU rápida de 64 bits porque desea que la salida final se alinee en su formato original.

Es posible que desee consultar con National Instruments LabVIEW y su hardware y software listos para usar para acelerar el proceso. Esto va a ser costoso sin importar cómo lo hagas.

    
respondido por el Sparky256

Lea otras preguntas en las etiquetas