win_get_url terrible performance, help on metric gathering and troubleshooting?

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.

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