Primeiro: o Linux não é um sistema operacional em tempo real. Não há como dizer ao kernel que alguns aplicativos precisam reagir a algum evento em um determinado período de tempo, como 3-4 ms, e dar uma garantia de que isso aconteça. Então, sempre que o sistema for carregado, você terá que assumir que haverá atrasos.
Dito isso, você pode ajustar as coisas em favor do seu aplicativo de recebimento de pacotes UDP:
-
O Linux tem controle de tráfego de rede (veja, por exemplo, Traffic Control HOWTO , exemplo de script para DSL com largura de banda limitada ) que pode utilizar para configurar diferentes filas com diferentes prioridades. para seus pacotes UDP e para pacotes grandes.
-
O Linux tem cgroups (grupos de controle), que você pode usar para atribuir diferentes prioridades de E / S e limites para seu processo de recebimento de UDP e os processos
ftpd
/sshd
etc., porque meu palpite é que a E / S de disco de outros processos também pode parar seu aplicativo de recebimento de pacote UDP (experimente para descobrir se isso é verdade ).
Novamente: não há como garantir nada.