Jira (PUP-9813) Performance of unpacking modules is extremely slow

13 views
Skip to first unread message

Chris Suszynski (JIRA)

unread,
Jul 3, 2019, 6:54:02 PM7/3/19
to puppe...@googlegroups.com
Chris Suszynski created an issue
 
Puppet / Bug PUP-9813
Performance of unpacking modules is extremely slow
Issue Type: Bug Bug
Affects Versions: PUP 6.6.0, PUP 5.5.14, PUP 4.10.12
Assignee: Unassigned
Components: Modules
Created: 2019/07/03 3:53 PM
Priority: Normal Normal
Reporter: Chris Suszynski
Original Estimate: 2 days
Remaining Estimate: 2 days

Puppet Version: any
Puppet Server Version: any
OS Name/Version: any

Installing modules from Puppet Forge is extremelly slow. I have found a culprit. It is a

Puppet::ModuleTool::Tar::Mini

implementation.

The unpack is 100x times slower then executing a {{tar xzvf }}system command.

Steps to reproduce:

Install a module from Puppet Forge and measure a time:

time puppet module install puppetlabs-stdlib --version 4.25.1

Then execute:

time bash -c 'curl https://forge.puppet.com/v3/files/puppetlabs-stdlib-4.25.1.tar.gz -o puppetlabs-stdlib-4.25.1.tar.gz && tar xzvf puppetlabs-stdlib-4.25.1.tar.gz'

Desired Behavior:

Extraction of downloaded modules should be about the same performance as system tar xzvf command. It might be at most 2x times slower then system command, but preferably should be about the same.

Add Comment Add Comment
 
This message was sent by Atlassian JIRA (v7.7.1#77002-sha1:e75ca93)
Atlassian logo

Chris Suszynski (JIRA)

unread,
Jul 3, 2019, 7:02:02 PM7/3/19
to puppe...@googlegroups.com
Chris Suszynski updated an issue
Change By: Chris Suszynski
*Puppet Version: any*
*Puppet Server Version: any*
*OS Name/Version: any*


Installing modules from Puppet Forge is extremelly slow. I have found a culprit. It is a

{{Puppet::ModuleTool::Tar::Mini}}

implementation.

The unpack is 100x times slower then executing a
\ {{tar xzvf }}system command.

*Steps to reproduce:*


Install a module from Puppet Forge and measure a time:

{{time puppet module install puppetlabs-stdlib --version 4.25.1}}

Then execute:

{{time bash -c 'curl [https://forge.puppet.com/v3/files/puppetlabs-stdlib-4.25.1.tar.gz] -o puppetlabs-stdlib-4.25.1.tar.gz && tar xzvf puppetlabs-stdlib-4.25.1.tar.gz'}}

*Desired Behavior:*


Extraction of downloaded modules should be about the same performance as system tar xzvf command. It might be at most 2x times slower then system command, but preferably should be about the same.


Temporal solution:

To install modules faster i propose to switch to Gnu implementation as a first choice. Al least until Minitar can be much faster.

Chris Suszynski (JIRA)

unread,
Jul 3, 2019, 7:03:03 PM7/3/19
to puppe...@googlegroups.com
Chris Suszynski updated an issue
*Puppet Version: any*
*Puppet Server Version: any*
*OS Name/Version: any*

Installing modules from Puppet Forge is extremelly extremely slow. I have found a culprit. It is a


{{Puppet::ModuleTool::Tar::Mini}}

implementation.

The unpack is * 100x times * slower then executing a \ {{tar xzvf}} system command . !

*Steps to reproduce:*

Install a module from Puppet Forge and measure a time:

{{time puppet module install puppetlabs-stdlib --version 4.25.1}}

Then execute:

{{time bash -c 'curl [https://forge.puppet.com/v3/files/puppetlabs-stdlib-4.25.1.tar.gz] -o puppetlabs-stdlib-4.25.1.tar.gz && tar xzvf puppetlabs-stdlib-4.25.1.tar.gz'}}

*Desired Behavior:*

Extraction of downloaded modules should be about the same performance as system tar xzvf command. It might be at most 2x times slower then system command, but preferably should be about the same.

* Temporal solution: *

To install modules faster i propose to switch to Gnu implementation as a first choice. Al least until Minitar can be much faster.

Jorie Tappa (JIRA)

unread,
Jul 15, 2019, 1:12:04 PM7/15/19
to puppe...@googlegroups.com

Jorie Tappa (JIRA)

unread,
Jul 15, 2019, 1:20:03 PM7/15/19
to puppe...@googlegroups.com
Jorie Tappa commented on Bug PUP-9813
 
Re: Performance of unpacking modules is extremely slow

This could introduce a regression on Solaris if implemented as-is, so the PR might need updating to account for that.

Josh Cooper (JIRA)

unread,
Jul 15, 2019, 5:14:02 PM7/15/19
to puppe...@googlegroups.com

Josh Cooper (JIRA)

unread,
Sep 11, 2019, 12:11:03 AM9/11/19
to puppe...@googlegroups.com
Josh Cooper commented on Bug PUP-9813

Thanks for raising this issue Chris Suszynski. We submitted a patch to minitar, and it's been released. Now we need to update puppet's minitar usage, so we don't fsync every extracted file and directory. We're tracking that work in PUP-10013, so I'm going to close this ticket and related PR.

Reply all
Reply to author
Forward
0 new messages