OpenZFS on Linux and FreeBSD
Go to file
Matthew Ahrens 812c36fc71 Target ARC size can get reduced to arc_c_min
Sometimes the target ARC size is reduced to arc_c_min, which impacts
performance.  We've seen this happen as part of the random_reads
performance regression test, where the ARC size is reduced before the
reads test starts which impacts how long it takes for system to reach
good IOPS performance.

We call arc_reduce_target_size when arc_reap_cb_check() returns TRUE,
and arc_available_memory() is less than arc_c>>arc_shrink_shift.

However, arc_available_memory() could easily be low, even when arc_c is
low, because we can have tons of unused bufs in the abd kmem cache. This
would be especially true just after the DMU requests a bunch of stuff be
evicted from the ARC (e.g. due to "zpool export").

To fix this, the ARC should reduce arc_c by the requested amount, not
all the way down to arc_size (or arc_c_min), which can be very small.

Reviewed-by: Tim Chase <tim@chase2k.com>
Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: George Melikov <mail@gmelikov.ru>
Signed-off-by: Matthew Ahrens <mahrens@delphix.com>
External-issue: DLPX-59431
Closes #8864
2019-09-25 11:27:47 -07:00
.github Update CONTRIBUTING to point users to IRC as well as mailing list 2019-03-13 11:57:57 -07:00
cmd grammar: it is / plural agreement 2019-09-25 11:27:46 -07:00
config Remove vn_set_fs_pwd()/vn_set_pwd() (no need to be at / during insmod) 2019-09-25 11:27:46 -07:00
contrib If $ZFS_BOOTFS contains guid, replace the guid portion with $pool 2019-06-07 12:45:40 -07:00
etc Fix zfs-mount-generator for datasets with spaces 2019-05-07 09:32:23 -07:00
include Allow metaslab to be unloaded even when not freed from 2019-09-25 11:27:47 -07:00
lib Refactor parent dataset handling in libzfs zfs_rename() 2019-09-25 11:27:46 -07:00
man Reduced IOPS when all vdevs are in the zfs_mg_fragmentation_threshold 2019-09-25 11:27:46 -07:00
module Target ARC size can get reduced to arc_c_min 2019-09-25 11:27:47 -07:00
rpm Add diffutils dependency for dkms build 2019-02-20 10:04:05 -08:00
scripts Avoid updating zfs_gitrev.h when rev is unchanged 2019-09-25 11:27:47 -07:00
tests Improve ZTS block_device_wait debugging 2019-09-25 11:27:47 -07:00
udev Add enclosure_symlinks option to vdev_id 2018-12-14 17:27:49 -08:00
.gitignore git ignore python 3.7 virtual environment directories 2019-03-25 15:05:26 -07:00
.gitmodules Add zimport.sh compatibility test script 2014-02-21 12:10:31 -08:00
.travis.yml Add .travis.yml 2017-11-13 09:18:18 -08:00
AUTHORS Update build system and packaging 2018-05-29 16:00:33 -07:00
CODE_OF_CONDUCT.md Add CODE_OF_CONDUCT.md 2019-04-30 10:58:45 -07:00
COPYRIGHT Update build system and packaging 2018-05-29 16:00:33 -07:00
LICENSE Update build system and packaging 2018-05-29 16:00:33 -07:00
META Tag zfs-0.8.1 2019-06-14 09:43:18 -07:00
Makefile.am zfs-tests: fix warnings when packaging some .shlib files 2019-06-07 12:39:13 -07:00
NEWS Add NEWS file 2018-09-18 12:03:47 -07:00
NOTICE Update build system and packaging 2018-05-29 16:00:33 -07:00
README.md Explicitly state supported Linux versions 2018-05-30 20:11:19 -07:00
TEST Update build system and packaging 2018-05-29 16:00:33 -07:00
autogen.sh Cause autogen.sh to fail if autoreconf fails 2018-07-06 09:27:37 -07:00
configure.ac Add TRIM support 2019-03-29 09:13:20 -07:00
copy-builtin Allow copy-builtin to work with modified sources 2018-10-17 12:06:05 -07:00
zfs.release.in Move zfs.release generation to configure step 2012-07-12 12:22:51 -07:00

README.md

img

ZFS on Linux is an advanced file system and volume manager which was originally developed for Solaris and is now maintained by the OpenZFS community.

codecov coverity

Official Resources

Installation

Full documentation for installing ZoL on your favorite Linux distribution can be found at our site.

Contribute & Develop

We have a separate document with contribution guidelines.

Release

ZFS on Linux is released under a CDDL license.
For more details see the NOTICE, LICENSE and COPYRIGHT files; UCRL-CODE-235197

Supported Kernels

  • The META file contains the officially recognized supported kernel versions.