Comments (6)
300-2000x performance decrease
This is also strange. I would expect augeas to be much faster than parsed file, unless augeas is accidentally loading the entire
/etc/
directory. Maybe the provider is not setting theincl
filter correctly? https://augeas.net/docs/builtins.html
puppet-augeasproviders_ssh/lib/puppet/provider/sshkey/augeas.rb
Lines 82 to 97 in 5d20cee
hashed
hostnames) with a large number of resources. Looks like it gets called 3 times per sshkey
catalog resource.
With 1000 sshkey
resources that's ~ 1.5 MILLION calls to aug.get
as it iterates over non-comment entries until it finds the resource.
from puppet-augeasproviders_ssh.
When I look at just the sshkey
execution time as displayed in reports sent to Foreman, I have seen a 2000x speed difference on a host with about 2.5k sshkey
resources.
from puppet-augeasproviders_ssh.
My opinion is that 300-2000x performance decrease should not ever be the default. If people want additional features, they should have to opt in to it.
@joshcooper even if we remove the defaultfor
, it will still be selected because it's got a confine and is more suitable, correct? Do you know why parsed
isn't the default?
from puppet-augeasproviders_ssh.
According to #55 this provider is currently broken; which is odd as it didn't explode for me, (but it wasn't making any changes so maybe I missed the broken code path.)
Also quite scary how it monkey patches the original type...
Maybe this made slightly more sense at the time, when the type was in puppet
and not split into its own module.
from puppet-augeasproviders_ssh.
it will still be selected because it's got a confine and is more suitable, correct?
If there are no default providers,, then puppet magically picks the provider with the "most specificity" https://github.com/puppetlabs/puppet/blob/a423af825d1e87a3158cd68d630e77352e9a5454/lib/puppet/provider.rb#L336-L345
The whole specificity thing is fragile and dumb. Refactoring a provider to use a new base provider can cause the specificity to change, thereby causing a different provider to be chosen.
Do you know why parsed isn't the default?
Probably because it used to be in core and I'm guessing predated this provider? TBH I don't think either provider should be the defaultfor
because they don't support composite namevars in the same way. Instead require users to specify which provider they want to use.
from puppet-augeasproviders_ssh.
300-2000x performance decrease
This is also strange. I would expect augeas to be much faster than parsed file, unless augeas is accidentally loading the entire /etc/
directory. Maybe the provider is not setting the incl
filter correctly? https://augeas.net/docs/builtins.html
from puppet-augeasproviders_ssh.
Related Issues (20)
- Release new version to fix compatability with puppet 7.28+ and 8.3+
- cannot pull via the Forge HOT 2
- Change to sshd_config not restarting daemon HOT 2
- Error when generating types for environment isolation
- Release 3.0.0 missing from forge HOT 2
- When will be supported on Puppet 2019.x HOT 2
- Multiple Port entries should be supported HOT 3
- Bug in handling ports in sshd_config when reducing the number of ports that are active HOT 2
- sshd_config_subsystem does not allow for manging the same subsystem name in multiple targets HOT 2
- error when attempting to manage GSSAPIKexAlgorithms HOT 3
- sshkey provider broken with Puppet 6 HOT 6
- Sshd.lns fails to parse Match block HOT 3
- Validation issues when trying to limit root access to IP address HOT 2
- Cannot create new HostKeyAlgorithms entry with augeas > 1.9.0 HOT 10
- The ssh_config lens does not appear to account for an Include line outside of Hosts entries in ssh_config HOT 1
- Ok to upgrade augeasproviders_core? HOT 5
- Cannot use group with spaces in Match statement HOT 8
- An acceptance test needs to be added that exercises the overrides in `lib/puppet/provider/sshkey/augeas.rb`
- Sshd_config[PubkeyAcceptedKeyTypes]: Could not evaluate: Failed to save Augeas tree to file. HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from puppet-augeasproviders_ssh.