Ansible performance degradation

by (November 11, 2016)

Posted in Tools  Tags:Ansible, DevOps, Tools

Is Ansible fast?

We started using Ansible several years ago. There were some issues and incompatibilities between versions. But up to version 2.0 we didn’t complain about speed. Now we do. Speed becomes an issue, projects started on 1.9 and migrated to the latest 2.2 becomes almost unusable, because you have to wait tens of minutes to have just one playbook finish.

Are developers aware of it?

Looks like not really, there is very interesting discussion, instead of address root cause developers just play with sleep??? Not funny.

What about the latest 2.2.0 version?

According to changelog there are “Major performance improvements” in this version.

I want to believe

Stop talking, give us numbers!

We DevOps, we automate. That is why time was spent and Ansible performance testing project was born. You can try it yourself, you just need python2.7 friendly (virtualenv, pip) environment to have it working.

Few words about tests, most of the time we play with template module and having lots of variables. Test 1 and 2 are about it, Test 3 invoking shell module with results register. Rather fast PC with 16G of ram and quad-core i5-6600 gave these results:

Test 1
Subject: Testing template performance
v1.9.6 0:06.72
v2.0.2 0:13.45
v2.1.3 0:20.66
v2.2.0 0:20.91

Test 2
Subject: Testing big stack of variables
v1.9.6 0:07.20
v2.0.2 0:14.29
v2.1.3 0:21.59
v2.2.0 0:21.57

Test 3
Subject: Testing shell execution with register
v1.9.6 0:06.64
v2.0.2 0:08.31
v2.1.3 0:12.40
v2.2.0 0:11.53

Ansible speed chart

We confirmed it, version 2.0 in many cases (tests 1,2) twice as slower comparing with 1.9. And version 2.1 slower by 300% than 1.9, crazy! But there is a good news too, version 2.2 broke this tendency and just as slow as version 2.1.


In many cases you should take care about Ansible’s performance issue and maybe it is a good time to look for an alternative.

Let us know!

Contact details:


Services you are interested in: