Closed jshen28 closed 2 years ago
So my question is does openvswitch kernel module internally caches packet and processes it later?
Some packets can be held inside the kernel, e.g. by the connection tracking module to re-assemble fragmented IP packets. Some packets could be sent to userspace and re-injected back later when the appropriate datapath flow is installed. But I don't think that any of that should be able to buffer 500K packets as in your case and release them later. The packet rate also doesn't seem big enough to cause any performance issues, unless the system has very limited resources or overloaded in some other way. So, something fishy is going on on this setup.
Thank you very much for reply. I think it is the kernel is buffering packets. I looked at the sysctl configuration and find net.core.netdev_max_backlog
is configured to a very large value. and somehow internal port will enqueue received packets
to backlog. Try to decrease this value and now packet drop starts to show off.
Hello,
In a test where
iperf3
is used to test virtual network performance, I found following behavior. Where sender sends packet with a rate near 110 thousand while receiver only got 80 thousand, the virtual machine booted with vxlan , and the network topology isand vxlan port is an internal create on another ovs bridge.
So my question is does openvswitch kernel module internally caches packet and processes it later?
Log: