Temos uma aplicação que recebe dígitos DTMF na forma de pacotes RTP (usando UDP). Anteriormente, a versão do servidor era RHEL 5.7 e tudo estava funcionando bem. Agora, desde que migramos para o RHEL 6.8, muitas vezes os pacotes estão sendo descartados. Os pacotes não chegam ao aplicativo e
netstat -su
mostra um aumento nos erros de recebimento de pacotes UDP. Estamos usando a função usual C recvfrom () para receber os pacotes do socket.
Definindo o valor de /proc/sys/net/core/rmem_max
para 33554432 usando
sysctl -w net.core.rmem_max=33554432
fez o sistema funcionar.
Agora, por que essa alteração é necessária no RHEL 6.8 e não na 5.7 e isso apenas atrasará o problema, pois quando esse buffer estiver cheio, os pacotes voltarão a cair?