Dear OpenBSD Developers,

I am aware of the serious improvement in OpenBSD 7.2:

"Activated parallel IP forwarding, starting 4 softnet tasks but limiting the usage to the number of CPUs."

I can confirm that the IPv4 packet forwarding performance of OpenBSD was highly improved by this change.

Previously I benchmarked OpenBSD 7.1 IPv4 and IPv6 packet forwarding using both SP and MP kernel on a 32-core server, and MP did not have much advantage. All the details can be found in table 17 of the below (open access) paper:

G. Lencse, K. Shima, K. Cho, "Benchmarking methodology for stateful NAT64 gateways", /Computer Communications/, vol. 210, October 2023, pp. 256-272, DOI: https://doi.org/10.1016/j.comcom.2023.08.009

Later we developed a methodology to improve the testing conditions of RFC 2544 / RFC 5180 which use a single IP address pair for router testing. Although RFC 48114 recommended pseudorandom port numbers, OpenBSD does not benefit from it, because its RSS implementation does not have an interface to set the hash function so that also the port numbers be used by the hash function.

To that end, our methodology recommends the usage of multiple and pseudorandom IP addresses in router benchmarking: https://datatracker.ietf.org/doc/html/draft-lencse-bmwg-multiple-ip-addresses

I did measurements with OpenBSD 7.3 using a 16-core server and I found a more than 3-fold increase in the performance of IPv4 packet forwarding when multiple IP addresses were used instead of a single IP address pair. All the details can be found in table 9 of the below (open access) paper:

G. Lencse, "Making Stateless and Stateful Network Performance Measurements Unbiased", /Computer Communications/, vol. 225, September 2024, pp. 141-155 DOI: https://doi.org/10.1016/j.comcom.2024.05.018

That's a great improvement, many thanks to the developers!

Now I do some further tests to improve the methodology. Currently I examine, how the throughput changes when using 1, 2, 4, 8, 16, 32, 64, ..., and 64k-3 number of IP addresses.

I have the previously used OpenBSD 7.3 server with all the necessary settings and scripts which is properly suitable for my current tests.

However, if the IP packet forwarding performance of OpenBSD has been significantly improved since version 7.3, then I would consider an upgrade.

This is why I ask the following question:

*Has the IP packet forwarding performance of OpenBSD been significantly improved since version 7.3?*

BTW, may I have a few, perhaps rather naive questions?

In OpenBSD 7.2, why 4 softnet tasks were introduced? (Why not for example, 8 or 16?)

Could a user change the value from 4 to e.g., 8 without recompiling the kernel, just by somehow setting a parameter?

Thank you for your reply in advance!

And I would be happy if my measurements could contribute to the performance improvement of OpenBSD. :-)

Best regards,

Gábor



Reply via email to