Some further investigation: I added some trace decorators to a branch of the master heat code to track down time usage in heat stack create CLI calls. This is the time that it takes for the heat api to respond to a POST, and to a subsequent GET (list) of stacks. Using fake hypervisor driver to be consistent with the above. The test case here was a simple single VM template, below. Validation and stack store are chewing up nearly all the time in a create. A stack with more VM resources would have multiple occurrences of heat.engine.resources.server.validate() section Note also, this is from a post-icehouse devstack, which I found to be slightly faster than Icehouse for this particular test. (~15-20%, but only a couple of measurements of Icehouse) description: Start 1 VMs resources: VM_0: type: OS::Nova::Server properties: key_name: mykey flavor: m1.micro image: F17-i386-cfntools security_groups: [test] 2014-06-05 21:56:39.759 INFO heat.engine.service [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] enter create_stack 2014-06-05 21:56:39.768 INFO heat.engine.service [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] enter _validate_new_stack 2014-06-05 21:56:39.779 INFO heat.engine.service [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] exit _validate_new_stack 2014-06-05 21:56:39.781 INFO heat.engine.parameters [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] enter validate 2014-06-05 21:56:39.781 INFO heat.engine.parameters [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] enter validate 2014-06-05 21:56:39.782 INFO heat.engine.parameters [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] exit validate 2014-06-05 21:56:39.782 INFO heat.engine.parameters [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] enter validate 2014-06-05 21:56:39.782 INFO heat.engine.parameters [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] exit validate 2014-06-05 21:56:39.783 INFO heat.engine.parameters [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] exit validate 2014-06-05 21:56:39.783 INFO heat.engine.service [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] enter _validate_deferred_auth_context 2014-06-05 21:56:39.784 INFO heat.engine.service [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] exit _validate_deferred_auth_context 2014-06-05 21:56:39.784 INFO heat.engine.parser [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] enter validate 2014-06-05 21:56:39.784 INFO heat.engine.template [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] enter validate 2014-06-05 21:56:39.785 INFO heat.engine.template [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] exit validate 2014-06-05 21:56:39.786 INFO heat.engine.parameter_groups [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] enter validate 2014-06-05 21:56:39.787 INFO heat.engine.parameter_groups [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] exit validate 2014-06-05 21:56:39.791 INFO heat.engine.resources.server [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] enter validate 2014-06-05 21:56:39.791 INFO heat.engine.resource [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] enter validate 2014-06-05 21:56:39.792 INFO heat.engine.properties [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] enter validate 2014-06-05 21:56:40.172 INFO heat.engine.properties [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] exit validate 2014-06-05 21:56:40.173 INFO heat.engine.resource [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] exit validate 2014-06-05 21:56:40.173 INFO heat.engine.resources.server [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] before get self.BLOCK_DEVICE_MAPPING 2014-06-05 21:56:40.173 INFO heat.engine.resources.server [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] after get self.BLOCK_DEVICE_MAPPING 2014-06-05 21:56:40.174 INFO heat.engine.resources.server [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] before get self.IMAGE 2014-06-05 21:56:40.315 INFO heat.engine.resources.server [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] after get self.IMAGE 2014-06-05 21:56:40.315 INFO heat.engine.resources.server [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] before get self.NETWORKS 2014-06-05 21:56:40.315 INFO heat.engine.resources.server [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] after get self.NETWORKS 2014-06-05 21:56:40.316 INFO heat.engine.resources.server [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] before get self.METADATA 2014-06-05 21:56:40.316 INFO heat.engine.resources.server [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] after get self.METADATA 2014-06-05 21:56:40.316 INFO heat.engine.resources.server [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] before get self.PERSONALITY 2014-06-05 21:56:40.316 INFO heat.engine.resources.server [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] after get self.PERSONALITY 2014-06-05 21:56:40.317 INFO heat.engine.resources.server [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] before nova_utils.absolute_limits 2014-06-05 21:56:40.504 INFO heat.engine.resources.server [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] after nova_utils.absolute_limits 2014-06-05 21:56:40.504 INFO heat.engine.resources.server [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] before get self.SECURITY_GROUPS 2014-06-05 21:56:40.505 INFO heat.engine.resources.server [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] after get self.SECURITY_GROUPS 2014-06-05 21:56:40.506 INFO heat.engine.resources.server [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] exit validate 2014-06-05 21:56:40.507 INFO heat.engine.parser [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] exit validate 2014-06-05 21:56:40.507 INFO heat.engine.parser [req-5a03a85f-2916-46c5-bfe9-9237da69bf88 admin admin] enter store 2014-06-05 21:56:40.896 INFO heat.engine.parser [-] exit store 2014-06-05 21:56:40.933 INFO heat.engine.service [-] exit create_stack ---------- (List stacks rest api call from CLI) 2014-06-05 21:56:41.100 INFO heat.engine.parameters [req-05fe8a7c-aa37-427b-a3dc-bf22c068844a None admin] enter validate 2014-06-05 21:56:41.101 INFO heat.engine.parameters [req-05fe8a7c-aa37-427b-a3dc-bf22c068844a None admin] enter validate 2014-06-05 21:56:41.101 INFO heat.engine.parameters [req-05fe8a7c-aa37-427b-a3dc-bf22c068844a None admin] exit validate 2014-06-05 21:56:41.101 INFO heat.engine.parameters [req-05fe8a7c-aa37-427b-a3dc-bf22c068844a None admin] enter validate 2014-06-05 21:56:41.102 INFO heat.engine.parameters [req-05fe8a7c-aa37-427b-a3dc-bf22c068844a None admin] exit validate 2014-06-05 21:56:41.102 INFO heat.engine.parameters [req-05fe8a7c-aa37-427b-a3dc-bf22c068844a None admin] exit validate 2014-06-05 21:56:41.317 INFO heat.engine.properties [-] enter validate 2014-06-05 21:56:41.657 INFO heat.engine.properties [-] exit validate ----------------- client side, which also includes a initial authentication POST: ubuntu@wcadevstack02:~/heat_tests$ time heat stack-create -f Test_1vms.yml T1VMs_01 +--------------------------------------+------------+--------------------+----------------------+ | id | stack_name | stack_status | creation_time | +--------------------------------------+------------+--------------------+----------------------+ | 90ad1242-8d18-4f3e-80d8-1f6f88b4f99a | T1VMs_01 | CREATE_IN_PROGRESS | 2014-06-05T21:56:40Z | +--------------------------------------+------------+--------------------+----------------------+ real 0m2.027s user 0m0.320s sys 0m0.104s