La base de código del núcleo de Linux, a partir de la cual se forma la versión 6.15, ha incorporado un conjunto de cambios con optimizaciones que, en ciertas situaciones, aumentan significativamente el rendimiento de las operaciones de red.
- La optimización de GRO (Generic Receive Offload), que combina varios pequeños paquetes en uno grande, ahora se activa al cambiar el procesamiento de un paquete a otra CPU (para equilibrar la carga) al usar el subsistema XDP (eXpress Data Path), que permite procesar paquetes a nivel de controlador de red antes de pasarlos a la pila de red. El aumento en el rendimiento del procesamiento de flujos TCP debido a esta optimización puede alcanzar hasta dos veces.
- Bajo condiciones de alta carga, el rendimiento de la función connect() se ha mejorado hasta en un 100% mediante la sustitución del bloqueo de giro por un mecanismo de sincronización RCU (Read-Copy-Update) al buscar registros con información sobre las partes de la conexión (orígenes y destinos) IP y puertos). Además, se ha realizado una optimización del hashing que ha proporcionado un aumento del rendimiento adicional del 229%.
- Se ha acelerado la implementación de MPTCP (Multipath TCP), una extensión del protocolo TCP para organizar la entrega de paquetes simultáneamente a través de múltiples rutas a través de diferentes interfaces de red vinculadas a diferentes direcciones IP. MPTCP en modo de un solo flujo se ha acelerado en un 29%.
- En netfilter, se ha detenido la ejecución de operaciones de búsqueda de rutas en FIB (Forwarding Information Base) cuando hay un socket presente. Gracias a esta optimización, el rendimiento ha aumentado en un 20%.
- El rendimiento de UDP bajo condiciones de flood se ha incrementado en un 10%, al eliminar operaciones innecesarias con la estructura sk_tsflags al recibir paquetes.
Además, en el núcleo Linux 6.15 en desarrollo, se ha aceptado un cambio para el controlador del sistema de archivos exFAT, que acelera las operaciones de eliminación de archivos. Anteriormente, el controlador exFAT enviaba solicitudes 'discard' a los dispositivos por separado para cada clúster liberado del archivo eliminado. La versión optimizada agrupa las solicitudes, lo que reduce el tiempo de eliminación de un archivo de prueba de 80 GB de 286 segundos a 1.6 segundos.
Fuente: opennet.ru
