Hi,

today I upgraded from Ansible 1.3.4 to 1.4.4 and noticed a major slowdown 
in my playbooks using ssh between virtual machines on the same VirtualBox 
host.

Here's a simple test with ping showing what I mean:

root@ansible:~/test/deploy# ansible --version
ansible 1.3.4

root@ansible:~/test/deploy# time ansible -i test -m ping test-host-2 -c ssh 
-vvvv
<test-host-2> ESTABLISH CONNECTION FOR USER: root
<test-host-2> EXEC ['ssh', '-tt', '-vvv', '-o', 'ControlMaster=auto', '-o', 
'ControlPersist=60s', '-o', 
'ControlPath=/root/.ansible/cp/ansible-ssh-%h-%p-%r', '-o', 'Port=40033', 
'-o', 'KbdInteractiveAuthentication=no', '-o', 
'PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey', 
'-o', 'PasswordAuthentication=no', '-o', 'ConnectTimeout=10', 
'test-host-2', "/bin/sh -c 'mkdir -p 
$HOME/.ansible/tmp/ansible-1391890971.81-192496444342081 && echo 
$HOME/.ansible/tmp/ansible-1391890971.81-192496444342081'"]
<test-host-2> REMOTE_MODULE ping 
<test-host-2> PUT /tmp/tmpDzkccX TO 
/root/.ansible/tmp/ansible-1391890971.81-192496444342081/ping
<test-host-2> EXEC ['ssh', '-tt', '-vvv', '-o', 'ControlMaster=auto', '-o', 
'ControlPersist=60s', '-o', 
'ControlPath=/root/.ansible/cp/ansible-ssh-%h-%p-%r', '-o', 'Port=40033', 
'-o', 'KbdInteractiveAuthentication=no', '-o', 
'PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey', 
'-o', 'PasswordAuthentication=no', '-o', 'ConnectTimeout=10', 
'test-host-2', "/bin/sh -c '/usr/bin/python 
/root/.ansible/tmp/ansible-1391890971.81-192496444342081/ping; rm -rf 
/root/.ansible/tmp/ansible-1391890971.81-192496444342081/ >/dev/null 2>&1'"]
test-host-2 | success >> {
    "changed": false, 
    "ping": "pong"
}


real    0m0.392s
user    0m0.124s
sys     0m0.032s


root@ansible:~/test/deploy# ansible --version
ansible 1.4.4

root@ansible:~/test/deploy# time ansible -i test -m ping test-host-2 -c ssh 
-vvvv
<test-host-2> ESTABLISH CONNECTION FOR USER: root
<test-host-2> EXEC ['ssh', '-tt', '-vvv', '-o', 'ControlMaster=auto', '-o', 
'ControlPersist=60s', '-o', 
'ControlPath=/root/.ansible/cp/ansible-ssh-%h-%p-%r', '-o', 'Port=40033', 
'-o', 'KbdInteractiveAuthentication=no', '-o', 
'PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey', 
'-o', 'PasswordAuthentication=no', '-o', 'ConnectTimeout=10', 
'test-host-2', "/bin/sh -c 'mkdir -p 
$HOME/.ansible/tmp/ansible-1391890986.05-221773170470374 && echo 
$HOME/.ansible/tmp/ansible-1391890986.05-221773170470374'"]
<test-host-2> REMOTE_MODULE ping 
<test-host-2> PUT /tmp/tmptXIMKK TO 
/root/.ansible/tmp/ansible-1391890986.05-221773170470374/ping
<test-host-2> PUT /tmp/tmpjViJP5 TO 
/root/.ansible/tmp/ansible-1391890986.05-221773170470374/arguments
<test-host-2> EXEC ['ssh', '-tt', '-vvv', '-o', 'ControlMaster=auto', '-o', 
'ControlPersist=60s', '-o', 
'ControlPath=/root/.ansible/cp/ansible-ssh-%h-%p-%r', '-o', 'Port=40033', 
'-o', 'KbdInteractiveAuthentication=no', '-o', 
'PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey', 
'-o', 'PasswordAuthentication=no', '-o', 'ConnectTimeout=10', 
'test-host-2', "/bin/sh -c '/usr/bin/python 
/root/.ansible/tmp/ansible-1391890986.05-221773170470374/ping 
/root/.ansible/tmp/ansible-1391890986.05-221773170470374/arguments; rm -rf 
/root/.ansible/tmp/ansible-1391890986.05-221773170470374/ >/dev/null 2>&1'"]
test-host-2 | success >> {
    "changed": false, 
    "ping": "pong"
}


real    0m2.412s
user    0m0.148s
sys     0m0.036s





I tried the same test with the current github HEAD and in the best case 
it's still much slower than 1.3.4:


root@ansible:~/test/deploy# ansible --version
ansible 1.5 (devel 2267503c53) last updated 2014/02/04 14:20:20 (GMT +200)


# new SSH plugin


root@ansible:~/test/deploy# time ansible -i test -m ping test-host-2 -c ssh 
-vvvv 
<test-host-2> ESTABLISH CONNECTION FOR USER: root
<test-host-2> REMOTE_MODULE ping 
<test-host-2> EXEC ['ssh', '-C', '-tt', '-vvv', '-o', 'ControlMaster=auto', 
'-o', 'ControlPersist=60s', '-o', 
'ControlPath=/root/.ansible/cp/ansible-ssh-%h-%p-%r', '-o', 'Port=40033', 
'-o', 'KbdInteractiveAuthentication=no', '-o', 
'PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey', 
'-o', 'PasswordAuthentication=no', '-o', 'ConnectTimeout=10', 
'test-host-2', "/bin/sh -c 'mkdir -p 
$HOME/.ansible/tmp/ansible-tmp-1391891219.83-137866337554858 && echo 
$HOME/.ansible/tmp/ansible-tmp-1391891219.83-137866337554858'"]                 
                                                                                
                                            

<test-host-2> PUT /tmp/tmpu_xAge TO 
/root/.ansible/tmp/ansible-tmp-1391891219.83-137866337554858/ping
<test-host-2> EXEC ['ssh', '-C', '-tt', '-vvv', '-o', 'ControlMaster=auto', 
'-o', 'ControlPersist=60s', '-o', 
'ControlPath=/root/.ansible/cp/ansible-ssh-%h-%p-%r', '-o', 'Port=40033', 
'-o', 'KbdInteractiveAuthentication=no', '-o', 
'PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey', 
'-o', 'PasswordAuthentication=no', '-o', 'ConnectTimeout=10', 
'test-host-2', "/bin/sh -c '/usr/bin/python 
/root/.ansible/tmp/ansible-tmp-1391891219.83-137866337554858/ping; rm -rf 
/root/.ansible/tmp/ansible-tmp-1391891219.83-137866337554858/ >/dev/null 
2>&1'"]                                                                         
                                       

test-host-2 | success >> {
    "changed": false, 
    "ping": "pong"
}


real    0m2.556s
user    0m0.160s
sys     0m0.048s



# old SSH plugin


root@ansible:~/test/deploy# time ansible -i test -m ping test-host-2 -c 
ssh_old -vvvv 
<test-host-2> ESTABLISH CONNECTION FOR USER: root
<test-host-2> REMOTE_MODULE ping 
<test-host-2> EXEC ['ssh', '-tt', '-vvv', '-o', 'ControlMaster=auto', '-o', 
'ControlPersist=60s', '-o', 
'ControlPath=/root/.ansible/cp/ansible-ssh-%h-%p-%r', '-o', 'Port=40033', 
'-o', 'KbdInteractiveAuthentication=no', '-o', 
'PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey', 
'-o', 'PasswordAuthentication=no', '-o', 'ConnectTimeout=10', 
'test-host-2', "/bin/sh -c 'mkdir -p 
$HOME/.ansible/tmp/ansible-tmp-1391891284.37-266812075342423 && echo 
$HOME/.ansible/tmp/ansible-tmp-1391891284.37-266812075342423'"]
<test-host-2> PUT /tmp/tmpAmk9Z_ TO 
/root/.ansible/tmp/ansible-tmp-1391891284.37-266812075342423/ping
<test-host-2> EXEC ['ssh', '-tt', '-vvv', '-o', 'ControlMaster=auto', '-o', 
'ControlPersist=60s', '-o', 
'ControlPath=/root/.ansible/cp/ansible-ssh-%h-%p-%r', '-o', 'Port=40033', 
'-o', 'KbdInteractiveAuthentication=no', '-o', 
'PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey', 
'-o', 'PasswordAuthentication=no', '-o', 'ConnectTimeout=10', 
'test-host-2', "/bin/sh -c '/usr/bin/python 
/root/.ansible/tmp/ansible-tmp-1391891284.37-266812075342423/ping; rm -rf 
/root/.ansible/tmp/ansible-tmp-1391891284.37-266812075342423/ >/dev/null 
2>&1'"]
test-host-2 | success >> {
    "changed": false, 
    "ping": "pong"
}


real    0m2.386s
user    0m0.152s
sys     0m0.020s


# new SSH plugin with pipelining=True


root@ansible:~/test/deploy# time ansible -i test -m ping test-host-2 -c ssh 
-vvvv 
<test-host-2> ESTABLISH CONNECTION FOR USER: root
<test-host-2> REMOTE_MODULE ping 
<test-host-2> EXEC ['ssh', '-C', '-vvv', '-o', 'ControlMaster=auto', '-o', 
'ControlPersist=60s', '-o', 
'ControlPath=/root/.ansible/cp/ansible-ssh-%h-%p-%r', '-o', 'Port=40033', 
'-o', 'KbdInteractiveAuthentication=no', '-o', 
'PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey', 
'-o', 'PasswordAuthentication=no', '-o', 'ConnectTimeout=10', 
'test-host-2', '/bin/sh -c /usr/bin/python']
test-host-2 | success >> {
    "changed": false, 
    "ping": "pong"
}


real    0m1.412s
user    0m0.132s
sys     0m0.044s


Is this major slowdown after 1.3.4 expected?

thanks ciao
ste





-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to