diff options
author | Benny Baumann <BenBE@geshi.org> | 2022-05-29 21:17:25 +0200 |
---|---|---|
committer | BenBE <BenBE@geshi.org> | 2022-05-30 07:50:57 +0200 |
commit | 7694dbc82175baff3b3a42898ef8c29c7299eca3 (patch) | |
tree | c04067fa28fb83fc6f9628feb7b8145bf6bcd3c4 /pcp/Platform.c | |
parent | c0a9e92eeaf53c53ca806f0ffa75a75c8a912e48 (diff) |
Implement PCP support for minimum ZFS ARC size
Diffstat (limited to 'pcp/Platform.c')
-rw-r--r-- | pcp/Platform.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/pcp/Platform.c b/pcp/Platform.c index b3d6ed4a..342bf439 100644 --- a/pcp/Platform.c +++ b/pcp/Platform.c @@ -178,6 +178,7 @@ static const char* Platform_metricNames[] = { [PCP_ZFS_ARC_BONUS_SIZE] = "zfs.arc.bonus_size", [PCP_ZFS_ARC_COMPRESSED_SIZE] = "zfs.arc.compressed_size", [PCP_ZFS_ARC_UNCOMPRESSED_SIZE] = "zfs.arc.uncompressed_size", + [PCP_ZFS_ARC_C_MIN] = "zfs.arc.c_min", [PCP_ZFS_ARC_C_MAX] = "zfs.arc.c_max", [PCP_ZFS_ARC_DBUF_SIZE] = "zfs.arc.dbuf_size", [PCP_ZFS_ARC_DNODE_SIZE] = "zfs.arc.dnode_size", @@ -510,8 +511,13 @@ void Platform_setMemoryValues(Meter* this) { this->values[4] = pl->availableMem; if (ppl->zfs.enabled != 0) { - this->values[0] -= ppl->zfs.size; - this->values[3] += ppl->zfs.size; + // ZFS does not shrink below the value of zfs_arc_min. + unsigned long long int shrinkableSize = 0; + if (ppl->zfs.size > ppl->zfs.min) + shrinkableSize = ppl->zfs.size - ppl->zfs.min; + this->values[0] -= shrinkableSize; + this->values[3] += shrinkableSize; + this->values[4] += shrinkableSize; } } |