Hi all,
A recent discussion on the development list introduced some great patches from Jerome Wagner, which have streamlined the number of SSH operations Ansible has to perform for a certain class of tasks. This makes the ssh implementation even faster (and especially so with Control Persist on, which we encourage!).
This works by not transferring files and creating tempdirs in many situations where a module doesn’t require file transfer, rather, by just pushing the module over the SSH channel and running it directly without saving it to disk.
It seems to be good for a 40-50% network performance upgrade in a basic case where some steps require file transfer and others don’t. It may be much more for many playbooks.
It won’t be very noticeable if your network is already great, but if it’s not, or you’re managing across the open internet, it’s pretty nice.
Naturally, this will do nothing for package update time, which is where you’ll be spending most of your management cycles in most playbooks anyway.
Rather than directly import this code for testing on the development branch, we’ve checked it in temporarily as “ssh_alt.py”. I’d be curious if you had regular playbooks you used if you could test this version to:
(A) see if there are any errors
(B) what sort of performance differences you see between -c ssh and -c ssh_alt. (Note: if your playbook has hard coded the connection in it, please remove the connection: line before testing, and be sure you are not using accelerate mode, as this will invalidate the tests).
(C) if possible, what data you get for accelerate mode.
Please don’t share local test (127.0.0.1) numbers, and after we get a few replies, we’ll mostly just be interested in hearing about any errors you might have encountered.
Remember you need to use -c ssh_alt to activate this for now.
Thanks very much and thanks for a very cool patch set Jerome!