Eu tenho uma instância do servidor em um OpenStack
que, em uma carga bastante alta, começa a perder UDP
pacotes. Capturei todos os pacotes de saída usando tcpdump
e alguns deles estão ausentes, mesmo que os logs de aplicativos indiquem que eles deveriam ter sido enviados. O tamanho usual do pacote é de cerca de 60 a 120 bytes.
A execução de netstat -s
dá:
[root@myServer] ~> netstat -s | grep Udp: -A 5
Udp:
3855490640 packets received
133199 packets to unknown port received.
89 packet receive errors
4116940753 packets sent
SndbufErrors: 1396176
Quando o servidor está sob carga, SndbufErrors
continua aumentando. Eu tentei descobrir o que poderia estar causando isso, mas sem sorte, embora pareça que isso deveria estar coberto em algum lugar.
P: Quais podem ser as razões para isso e como posso resolver isso?
Investigação que fiz:
A execução de ifconfig -a
não mostra erros:
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6361554048 errors:0 dropped:0 overruns:0 frame:0
TX packets:6902945025 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
Eu tentei aumentar txqueuelen
para 10'000
(executando ifconfig eth1 txqueuelen 10000
), mas isso não fez diferença.
Executando vários comandos sysctl
que recebo:
net.core.rmem_max = 124928
net.core.wmem_max = 4194304
net.core.rmem_default = 124928
net.core.wmem_default = 124928
Eu tentei aumentar net.core.rmem_max
e net.core.wmem_max
para um número muito maior 16'777'216
, mas continuo recebendo os mesmos erros.
A execução de sar -n UDP 1 1
dá (valores aproximados, mas sem erros):
05:47:31 PM idgm/s odgm/s noport/s idgmerr/s
05:48:46 PM 23000.00 24000.00 0.00 0.00
A execução de ethtool
na instância Openstack
VM resulta principalmente em Operation not supported
. Executando ethtool
no servidor host Openstack
escolhendo sua interface que é usada para se comunicar com o mundo externo, recebo:
[root@myServer] ~> ethtool em1
Speed: 1000Mb/s
...
[root@myServer] ~> ethtool -g em1
Ring parameters for em1:
Pre-set maximums:
RX: 4096
RX Mini: 0
RX Jumbo: 0
TX: 4096
Current hardware settings:
RX: 256
RX Mini: 0
RX Jumbo: 0
TX: 256
Não estou convencido de que isso possa estar relacionado, já que os erros que vejo estão dentro da VM e não no servidor host Openstack
. Atualização: eu aumentei os valores de RX
e TX
, mas não obtive sucesso.