[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-pf mailing list