win_get_url terrible performance, help on metric gathering and troubleshooting?

194 views
Skip to first unread message

b...@tanners.org

unread,
Aug 23, 2017, 3:20:14 AM8/23/17
to Ansible Project
I have an IIS web server and 13 Windows 7 computers on the same VLAN.

On each Windows 7 computer I want to win_get_url a 182M file from the IIS server.

Here is the ansible play

- name: download installer files
win_get_url:
url: "{{ item.url }}/{{ item.file }}"
dest: "{{ item.dest }}\\{{ item.file }}"
force: no
with_items:
- "{{ _installers }}"
tags: installer

It take almost 45 minutes to transfer the 182M file.

Opening up Google Chrome to "{{ item.url }}/{{ item.file }}" the file downloads in a few seconds.

I have cygwin installed and wget "{{ item.url }}/{{ item.file }}" only takes a few seconds.

How do I gather metrics so I can open up an intelligent github issue?

I don't want to open a generic "it's slow for me" issue, which is normally followed by developer saying "it works for me".

ANSIBLE_DEBUG=1 and -vvvv do not return any sort of recognizable performance metrics (I'll admit I don't know what to took for)

https://github.com/ansible/ansible/issues/23450 seems to be complaining about win_copy performace

Not sure how the powershell part of the transfer happens, but some big time differences on what powershell method you use for the transfer. Documentation at here: https://blog.jourdant.me/post/3-ways-to-download-files-with-powershell

Let me know what I can do to provide addition information.

Jordan Borean

unread,
Aug 23, 2017, 9:36:12 AM8/23/17
to Ansible Project
That's weird, I've used win_get_url to download files in the gigabyte range without any performance issues. One thing I would recommend is to try the powershell command below and post the results in the github issue.

)New-Object System.Net.WebClient).DownloadFile("put the URL here", "put the dest file path here")

If you can try running this command locally and through the win_shell/raw module and see what the performance is like.

System.Net.WebClient is what is used in that module so should be a good way to easily replicate whether it is the download that is being slow.

Thanks

Jordan
Reply all
Reply to author
Forward
0 new messages