contrail heat plugin reads heat.conf over and over
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
Juniper Openstack | Status tracked in Trunk | |||||
R3.2 |
Fix Committed
|
Undecided
|
Shivayogi Ugaji | |||
R3.2.3.x |
Fix Committed
|
High
|
Nikhil Bansal | |||
R4.1 |
Fix Committed
|
High
|
Shivayogi Ugaji | |||
R5.0 |
Fix Committed
|
High
|
Shivayogi Ugaji | |||
Trunk |
Fix Committed
|
High
|
Shivayogi Ugaji | |||
OpenContrail |
New
|
Undecided
|
Unassigned |
Bug Description
(Contrail version: 3.2.3.x, but issue still present in master)
While testing a Heat stack with a significant number of resources, we noticed a high CPU usage of Heat engine. After doing some profiling, we noticed a hot spot in contrail heat plugin.
The pyflame flamegraph attachment shows the hotspot.
We see a heat engine process spending 84% of its time in [1].
Adding minimal logging at this place, I confirmed that this parsing of heat.conf happens each time that is instantiated one of the classes representing a Contrail Heat resource. For a given resource, this happens at stack validation time, then again at stack creation (at least once).
[1] https:/
Of course, parsing heat.conf again and again isn't very useful, the established operational practice being to restart heat engine whenever its config is changed.