[SOLVED] performance issue within VNET jail
Michael Grimm
trashcan at ellael.org
Sat Dec 23 14:06:16 UTC 2017
Bjoern A. Zeeb <bzeeb-lists at lists.zabbadoz.net> wrote:
>
> On 22 Dec 2017, at 20:30, Michael Grimm wrote:
>> Hi —
>>
>> [ I am including freebsd-pf at FreeBSD.org now and removing freebsd-jail at FreeBSD.org ]
>> [ Thread starts at https://lists.freebsd.org/pipermail/freebsd-net/2017-December/049470.html ]
>>>>
>>>> (#) there is a *dramatic* performance loss (TCP) when:
>>>>
>>>> (-) fetching files from outside through PF/extIF via bridge to jail
> …
>>>>
>>>> Thanks for your suggestions so far, but I am lost here. Any ideas?
>>>
>>> It seems to me some kind of bug in the PF.
>>> I personally never tried it, I use ipfw and it works just fine.
>>
>> Before testing IPFW (which I have never used before) I'd like to ask the experts in freebsd-pf at FreeBSD.org about possible tests/tweaks regarding PF.
>
> OK, too complicated setups; I am not getting it fully.
;-)
> Can you please just describe the one case that doesn’t work well in all detail and ignore all the others for a moment?
>
> (a) what’s the external host interface?
vtnet
> (b) pf runs on the base system?
yes
> (c) you are bridging into a VNET-jail? How exactly? Are you bridging to epairs?
yes, I am bridging epairs
> (d) where exactly are you NATing?
I am NATing IPv4 and IPv6 at the host' PF ffirewall
> (e) why are you bridging and NATing? That makes little sense to me. Couldn’t you NAT and forward or just bridge?
hmm, that has been developed by myself over the years. I do "consider" my jails as jails with their own network stack, like isolated "VM".
> (f) what’s inside the VNET jail? Another pf or anything?
no more firewall, my jails are merely service jails (dns, mail, web, …)
> (g) out of curiosity, does dmesg on the base system indicate anything?
No.
> To understand your performance problem better:
>
> (1) you are doing a fetch of a rather large file to test from within the VNET jail? Or what are you fetching? Are you using fetch?
yes, I do something like the following with the jail:
wget https://download.freebsd.org/ftp/releases/ISO-IMAGES/11.1/FreeBSD-11.1-RELEASE-amd64-bootonly.iso -O /dev/null
> (2) if you fetch from within the same VNET jail does that perform?
> (3) if you fetch something to the VNET jail from the base system just going through your internal setup but not leaving the machine, does that still perform?
> (4) if you fetch something to the VNET jail from the same LAN (if possible to test) does that perform?
> (5) if you fetch something to the VNET jail from a close by location does that make a difference to something on the other side of the planet?
I will skip these questions for the time being, because I did solve my issue 15 minutes before your mail ;-) And I feel sorry for all your now "wasted" efforts in trying to help me.
As I am using vtnet interface in a cloud environment (Public Cloud by OVH) I did read the vtnet(4) man pages and stumbled about "LOADER TUNABLES" like:
hw.vtnet.lro_disable
hw.vtnet.X.lro_disable
This tunable disables LRO. The default value is 0.
Well, without knowing and understanding the implications of those loader tunables I did disabled them step by step, and bingo, setting …
hw.vtnet.lro_disable="1"
… in /boot/loader.conf" and performance is back from KB/s to MB/s.
I really do not understand what I have done and why it is working and whether that will have negative implications for my servers. Perhaps someone of you experts could help me understand it.
Because I am leaving in some hours for Xmas vacations, I won't be able to come back to this issue for some days now.
I'd like to thank all of you for your patience and help, and:
Merry Christmas and with kind regards,
Michael
More information about the freebsd-net
mailing list