As commented in the last Neutron drivers meeting [1], I committed myself to make some quick benchmarks with the DHCP agent threading. I created an environment using ML2/OVN with one single controller and a DHCP agent on it. I created:
* 100 networks (and 1 subnet per network)
* 10 ports per network --> that is a total of 1000 ports.
To benchmark the DHCP agent I focused in the restart process, in particular the resync method and the port processing. During the restart time, I didn't make any other Neutron operation. The restart process has two phases:
* The RPC resync. This phase starts with the log "Synchronizing state" and ends with "Synchronizing state complete"
* The port processing. The ports are processes in batches. Each batch ends with the log "DHCP configuration for ports %s is completed".
I tested with the current DHCP implementation and with [2], that reduces the event processing threads to only 1. In [2] there are 3 executions with each implementation. The start transient time in all of them is around 2:20 minutes; that means there is no speed gain when using multiple threads in the DHCP event processing task.
Hello:
As commented in the last Neutron drivers meeting [1], I committed myself to make some quick benchmarks with the DHCP agent threading. I created an environment using ML2/OVN with one single controller and a DHCP agent on it. I created:
* 100 networks (and 1 subnet per network)
* 10 ports per network --> that is a total of 1000 ports.
To benchmark the DHCP agent I focused in the restart process, in particular the resync method and the port processing. During the restart time, I didn't make any other Neutron operation. The restart process has two phases:
* The RPC resync. This phase starts with the log "Synchronizing state" and ends with "Synchronizing state complete"
* The port processing. The ports are processes in batches. Each batch ends with the log "DHCP configuration for ports %s is completed".
I tested with the current DHCP implementation and with [2], that reduces the event processing threads to only 1. In [2] there are 3 executions with each implementation. The start transient time in all of them is around 2:20 minutes; that means there is no speed gain when using multiple threads in the DHCP event processing task.
Regards.
[1]https:/ /meetings. opendev. org/meetings/ neutron_ drivers/ 2024/neutron_ drivers. 2024-06- 28-14.01. log.html /review. opendev. org/c/openstack /neutron/ +/922719 /paste. opendev. org/show/ b8JUaVPaZNIRA1c m08fw/
[2]https:/
[3]https:/