GithubHelp home page GithubHelp logo

Comments (3)

k-y avatar k-y commented on June 14, 2024

Copying over winrm is still slow... a directory of 8 files totalling about 1MB in size takes 25 seconds to copy whereas the same copy using ssh takes 2 seconds.

from pywinrm.

jborean93 avatar jborean93 commented on June 14, 2024

This is unfortunately a limitation with the transport protocol that WinRM runs under called WSMV. Each message sent to the server has a max size of 8KB which produces a lot of overhead. Unfortunately there isn't too much that can be done in the current state of pywinrm as it uses WSMV exclusively. I am looking into the background to see how we can implement PSRP as that is meant to get over some of the limits with WSMV (I don't know how as it is over the same protocol) but it is really early days.

from pywinrm.

nitzmahone avatar nitzmahone commented on June 14, 2024

I assume you mean using Ansible, since winrm itself has no native file transfer capability at all (we had to roll our own). The actual throughout is already pretty close to the theoretical maximum over WinRM- since Ansible 2.0, we've abandoned the 8k multi-invocation mess and are doing ~150k request streams on a single command invocation (PSRP actually increases the overhead- I've yet to come up with an Ansible scenario that isn't worse under PSRP). You mentioned you're copying a directory of files- for a total data size of 1MB, it's likely that the per-file module overhead and round-trippage significantly dwarfs the actual file transfer data. You'd probably do a lot better to zip the contents of the directory and push it over that way. Ansible 2.3 significantly reduces that overhead via module pipelining, but it'll still dwarf your data since we resend the stat module for each file. It's possible that we could cache that to improve perf for recursive transfers, but it's unlikely to happen until at least 2.4... Closing this issue, since there's nothing to be done in this project for it.

from pywinrm.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.