Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Increase default arc_c_min #6659

Merged
merged 1 commit into from Sep 20, 2017
Merged

Increase default arc_c_min #6659

merged 1 commit into from Sep 20, 2017

Conversation

behlendorf
Copy link
Contributor

Description

Increase the default arc_c_min value to which whichever is larger,
either 32M or 1/32 of total system memory. This is advantageous for
systems with more than 1G of memory where performance issues may
occur when the ARC is allowed to collapse below a minimum size.
At the same time we want to use the bare minimum value which is
still functional so the filesystem can be used in very low memory
environments.

Motivation and Context

By increasing the default arc_c_min on systems which have more
total memory available it's possible to avoid some performance
pathologiies caused by the ARC collapsing due to competing
application demand for memory. The change complements recent
fixes such as 787acae which prevent the ARC from mistakenly
decreasing in size needlessly.

How Has This Been Tested?

  • Locally
  • Buildbot
  • User testing which specifically increased zfs_arc_c_min for their workload.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Performance enhancement (non-breaking change which improves efficiency)
  • Code cleanup (non-breaking change which makes code smaller or more readable)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation (a change to man pages or other documentation)

Checklist:

  • My code follows the ZFS on Linux code style requirements.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • All new and existing tests passed.
  • All commit messages are properly formatted and contain Signed-off-by.
  • Change has been approved by a ZFS on Linux member.

Increase the default arc_c_min value to which whichever is larger,
either 32M or 1/32 of total system memory.  This is advantageous for
systems with more than 1G of memory where performance issues may
occur when the ARC is allowed to collapse below a minimum size.
At the same time we want to use the bare minimum value which is
still functional so the filesystem can be used in very low memory
environments.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Copy link
Contributor

@dweeezil dweeezil left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@behlendorf I've thought something like this would be a good idea for some time, but always wondered what a reasonable default would be. The allmem/32 seems quite reasonable.

@codecov
Copy link

codecov bot commented Sep 20, 2017

Codecov Report

Merging #6659 into master will increase coverage by 0.41%.
The diff coverage is 100%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #6659      +/-   ##
==========================================
+ Coverage   67.61%   68.03%   +0.41%     
==========================================
  Files         196      196              
  Lines       70349    70348       -1     
  Branches    13921    13921              
==========================================
+ Hits        47569    47862     +293     
+ Misses      17444    17111     -333     
- Partials     5336     5375      +39
Impacted Files Coverage Δ
module/zfs/arc.c 78.4% <100%> (+0.2%) ⬆️
cmd/zed/agents/zfs_retire.c 48.44% <0%> (-6.84%) ⬇️
module/zfs/vdev_disk.c 62.23% <0%> (-2.42%) ⬇️
module/zfs/rrwlock.c 91.45% <0%> (-1.71%) ⬇️
module/zfs/dmu_zfetch.c 96.47% <0%> (-1.18%) ⬇️
module/zfs/zvol.c 74.3% <0%> (-1.1%) ⬇️
module/zfs/vdev_mirror.c 94.71% <0%> (-0.97%) ⬇️
module/zfs/dnode.c 86.6% <0%> (-0.78%) ⬇️
cmd/zed/agents/fmd_api.c 28.46% <0%> (-0.72%) ⬇️
module/unicode/u8_textprep.c 3.74% <0%> (-0.63%) ⬇️
... and 52 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8e2ddda...b06be3b. Read the comment docs.

@dswartz
Copy link
Contributor

dswartz commented Sep 20, 2017 via email

@behlendorf
Copy link
Contributor Author

@kpande we're extending the automated testing to provide code coverage reports for PRs.

@behlendorf behlendorf merged commit 4ce3c45 into openzfs:master Sep 20, 2017
@tonyhutter tonyhutter added this to TODO in 0.7.2 Sep 20, 2017
tonyhutter pushed a commit that referenced this pull request Sep 20, 2017
Increase the default arc_c_min value to which whichever is larger,
either 32M or 1/32 of total system memory.  This is advantageous for
systems with more than 1G of memory where performance issues may
occur when the ARC is allowed to collapse below a minimum size.
At the same time we want to use the bare minimum value which is
still functional so the filesystem can be used in very low memory
environments.

Reviewed-by: Tim Chase <tim@chase2k.com>
Reviewed-by: George Melikov <mail@gmelikov.ru>
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #6659
@tonyhutter tonyhutter moved this from TODO to Done in 0.7.2 Sep 20, 2017
Fabian-Gruenbichler pushed a commit to Fabian-Gruenbichler/zfs that referenced this pull request Sep 29, 2017
Increase the default arc_c_min value to which whichever is larger,
either 32M or 1/32 of total system memory.  This is advantageous for
systems with more than 1G of memory where performance issues may
occur when the ARC is allowed to collapse below a minimum size.
At the same time we want to use the bare minimum value which is
still functional so the filesystem can be used in very low memory
environments.

Reviewed-by: Tim Chase <tim@chase2k.com>
Reviewed-by: George Melikov <mail@gmelikov.ru>
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes openzfs#6659
@behlendorf behlendorf deleted the arc_c_min branch April 19, 2021 19:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
0.7.2
Done
Development

Successfully merging this pull request may close these issues.

None yet

5 participants