I tried to forward the war file of 24MB from fileserver of puppet to the client. However, it very took time to do it, and, after all, the client side became a time-out error. I think that I see the source of puppet, and understood the cause. Because fileserver does the content of the file in URL Encode when the file is forwarded. (puppet/network/handler/filserver.rb:204)> if @local > return str > else > return CGI.escape(str) > endIt takes time of three minutes over in my server for this processing. I do not understand why such processing is done. I want you to teach the method in which someone is good to solve this problem. (Version used is 0.24.5) --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---
Brice Figureau
2009-Jun-05 08:10 UTC
[Puppet Users] Re: Forwarding a big binary file is slow.
On Thu, 2009-06-04 at 23:34 -0700, Masahiro wrote:> I tried to forward the war file of 24MB from fileserver of puppet to > the client. However, it very took time to do it, and, after all, the > client side became a time-out error. > > I think that I see the source of puppet, and understood the cause. > Because fileserver does the content of the file in URL Encode when the > file is forwarded. > > (puppet/network/handler/filserver.rb:204) > > if @local > > return str > > else > > return CGI.escape(str) > > end > > It takes time of three minutes over in my server for this processing. > I do not understand why such processing is done. > I want you to teach the method in which someone is good to solve this > problem. > > (Version used is 0.24.5)This is because Puppet uses XMLRPC (in version < 0.25) as its transport protocol. Since XMLRPC can''t send binary data, the whole binary file has to be escaped. This process takes a long time and consumes a lot of memory. This is one of the reason of the move to a RESTful system in 0.25, where fileserving will be done in pure HTTP (and thus be fast). There is no possibility to solve this issue in 0.24, except serving the file by a different way. For distributing large files, I do prefer using the package manager (debian here), and I''m doing my own packages of the things I want to distribute. You can also use an exec doing a wget. -- Brice Figureau My Blog: http://www.masterzen.fr/ --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---