Bug 1813562

Summary: Amphora Vertical Scaling (Threading/CPU pinning)
Product: Red Hat OpenStack Reporter: Carlos Goncalves <cgoncalves>
Component: openstack-octaviaAssignee: Tom Weininger <tweining>
Status: CLOSED MIGRATED QA Contact: Bruna Bonguardo <bbonguar>
Severity: high Docs Contact:
Priority: high    
Version: 18.0 (Zed)CC: bbonguar, beagles, cylopez, gurpsing, ihrachys, lpeer, majopela, njohnston, scohen, tweining
Target Milestone: gaKeywords: FutureFeature, Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-10-10 11:36:30 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1813560, 1813718    
Bug Blocks:    

Description Carlos Goncalves 2020-03-14 13:18:11 UTC
Now that Octavia supports flavors, operators are able to define flavors that have varying sizes of compute instances. Currently, the Amphora driver does not leverage vCPU cores beyond one. This is due to limitations in previous versions of the HAProxy engine and the lack of demand for performance beyond what 1 vCPU can provide.

Now with version 2.0 of the HAProxy engine, we can enable vertical scaling by supporting multiple vCPUs per amphora instance using threading. We would also enable intelligent CPU pinning for the NIC interrupts and the HAProxy threads. This should require no additions to the Octavia API as the amphora agent should be able to detect these configurations and make the necessary configuration settings automatically. This would allow much higher numbers of concurrent connections without requiring an active/active topology.

https://www.haproxy.com/blog/multithreading-in-haproxy/
https://www.haproxy.com/documentation/hapee/latest/administration/multithreading/

Comment 6 Tom Weininger 2023-05-05 08:23:22 UTC
Resetting to ON_DEV because adjustments for next-gen still need to be done.