Si va por la ruta del alto rendimiento, normalmente querrá ejecutar la menor cantidad posible de otros procesos (programados), ya que interferirán con su aplicación.
Linux, al igual que los sistemas operativos UNIX clásicos, está diseñado para ejecutar múltiples aplicaciones al mismo tiempo de manera justa y trata de evitar el agotamiento de los recursos. Los pasos simples a nivel del sistema operativo están cambiando el nivel agradable y la prioridad en tiempo real de su aplicación, cambiando el programador o eligiendo un núcleo en tiempo real .
TCP / IP generalmente se ajusta para evitar caídas de conexión y hacer un uso eficiente del ancho de banda disponible. Para obtener la latencia más baja posible de un enlace muy rápido, en lugar de obtener el mayor ancho de banda posible de una conexión donde algunos enlaces intermedios están más restringidos, va a ajustar el ajuste de la pila de red.
sysctl -a
le mostrará una gran cantidad de configuraciones de kernel que puede ajustar. La configuración depende de si está utilizando o no IPv4 o IPv6 y qué es exactamente lo que ya hace en su aplicación, pero puede ser de interés:
net.ipv4.tcp_window_scaling=1
RFC 1323: soporte para ventanas de TCP IPV4 de más de 64 K, generalmente necesario en redes de gran ancho de banda
net.ipv4.tcp_reordering=3
El número máximo de veces que se puede reordenar un paquete IPV4 en una secuencia de paquetes TCP sin que TCP suponga la pérdida de paquetes y se inicie lentamente.
net.ipv4.tcp_low_latency=1
destinado a dar preferencia a la baja latencia sobre el mayor rendimiento; setting = 1 deshabilita el procesamiento previo de IPv4 tcp
net.ipv4.tcp_sack=0
establecer a 1 habilita el reconocimiento selectivo para IPV4, lo que requiere habilitar tcp_timestamps y agrega algo de sobrecarga de paquetes, que no necesita si no experimenta packetloss
net.ipv4.tcp_timestamps=0
Solo aconsejado en casos donde se necesita saco.
net.ipv4.tcp_fastopen=1
Habilite para enviar datos en el paquete SYN de apertura.
La mayoría, si no todos, están mejor documentados en la fuente del núcleo .
Por supuesto, puede codificar sockets TCP sin procesar y omitir la pila TCP / IP del núcleo por completo.
A menudo, los sistemas altamente sintonizados se ejecutan en una red confiable y tendrán sus firewalls locales (iptables) deshabilitados.