Use ping api instead of system info for fingerprinting #186
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
All nomad drivers must implement a fingerprint mechanism. Back at the day i went with the system info api call and it worked well.
But it turned out that this is a rather heavy invocation, going even down to the package manager level (dpkg, rpm) to gather informations. The driver builds a fingerprint each 30 seconds and thus it wastes quite some cpu cycles and has an impact on the overall machine load.
Some numbers
A simple
perf stat
on my machine shows the difference between the two podman cli equivalents:What the PR does
This PR changes the mechanism to use the _ping api call which is not so resource intensive. System info is now usually only called once.
Conclusion
You will not see a big performance different on a crowded host but it certainly makes the situation better on a idle machine.