mirror of
https://github.com/xzeldon/htop.git
synced 2024-12-24 15:15:44 +00:00
consider only shrinkable ZFS ARC as cache on Linux
This commit is contained in:
parent
98cbdc6dca
commit
491c6f1044
@ -1922,6 +1922,7 @@ static inline void LinuxProcessList_scanZfsArcstats(LinuxProcessList* lpl) {
|
||||
|
||||
switch (buffer[0]) {
|
||||
case 'c':
|
||||
tryRead("c_min", &lpl->zfs.min);
|
||||
tryRead("c_max", &lpl->zfs.max);
|
||||
tryReadFlag("compressed_size", &lpl->zfs.compressed, lpl->zfs.isCompressed);
|
||||
break;
|
||||
@ -1956,6 +1957,7 @@ static inline void LinuxProcessList_scanZfsArcstats(LinuxProcessList* lpl) {
|
||||
|
||||
lpl->zfs.enabled = (lpl->zfs.size > 0 ? 1 : 0);
|
||||
lpl->zfs.size /= 1024;
|
||||
lpl->zfs.min /= 1024;
|
||||
lpl->zfs.max /= 1024;
|
||||
lpl->zfs.MFU /= 1024;
|
||||
lpl->zfs.MRU /= 1024;
|
||||
|
@ -358,8 +358,13 @@ void Platform_setMemoryValues(Meter* this) {
|
||||
this->values[4] = pl->availableMem;
|
||||
|
||||
if (lpl->zfs.enabled != 0 && !Running_containerized) {
|
||||
this->values[0] -= lpl->zfs.size;
|
||||
this->values[3] += lpl->zfs.size;
|
||||
// ZFS does not shrink below the value of zfs_arc_min.
|
||||
unsigned long long int shrinkableSize = 0;
|
||||
if (lpl->zfs.size > lpl->zfs.min)
|
||||
shrinkableSize = lpl->zfs.size - lpl->zfs.min;
|
||||
this->values[0] -= shrinkableSize;
|
||||
this->values[3] += shrinkableSize;
|
||||
this->values[4] += shrinkableSize;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -10,6 +10,7 @@ in the source distribution for its full text.
|
||||
typedef struct ZfsArcStats_ {
|
||||
int enabled;
|
||||
int isCompressed;
|
||||
unsigned long long int min;
|
||||
unsigned long long int max;
|
||||
unsigned long long int size;
|
||||
unsigned long long int MFU;
|
||||
|
Loading…
Reference in New Issue
Block a user