Hi, I wasn't sure whether to file this against ZFS or the SPL, but the SPL has very few issues filed, so here I am.
After some heavy activity on a pool (intensive file creation and listing) I'm seeing a wired memory consumption of 14.07GB, of which 10.5GB appears to be consumed by ZFS:
but the SPL isn't dropping with it. No matter; let's apply some pressure and see if it releases.
sudo memory_pressure -l warn -s 8
App Memory consumption slowly climbs over the next 5-10 minutes. Pressure rises, and Wired Memory does not drop. Eventually, Compressed shoots through the roof (8GB or so), and we finally hit "warn", where I hold it for a while to observe.
We can see that the ARC releases memory at a few points:
Seems reasonable. Apply pressure: takes forever again (>10m to hit WARN at a final pressure of 65%). For most of that time, memory consumption climbed very slowly with pressure holding around ~35%. It's as if memory_pressure is struggling to find pages to allocate, even though pressure is ostensibly low.
Hi, I wasn't sure whether to file this against ZFS or the SPL, but the SPL has very few issues filed, so here I am.
After some heavy activity on a pool (intensive file creation and listing) I'm seeing a wired memory consumption of 14.07GB, of which 10.5GB appears to be consumed by ZFS:
Which is all well and good, but even under pressure it wasn't dropping, so I tried to constrain the ARC:
ARC now looks like this:
but the SPL isn't dropping with it. No matter; let's apply some pressure and see if it releases.
App Memory consumption slowly climbs over the next 5-10 minutes. Pressure rises, and Wired Memory does not drop. Eventually, Compressed shoots through the roof (8GB or so), and we finally hit "warn", where I hold it for a while to observe.
We can see that the ARC releases memory at a few points:
But the SPL remains iron-fisted.
Alright; let's just export the pool entirely (no pools imported), and check the ARC again:
And the SPL...
So this time, the SPL dropped by the amount of ARC freed. What the heck is it doing with the rest?
Let's try applying putting the squeeze on again
Memory looks like this:
We've released a lot, but we're still holding on to >3GB with no pools imported?
Let's repeat from the start (sort of; I'm not rebooting, nor relaxing the ARC constraints). Import pool; do some work:
Seems reasonable. Apply pressure: takes forever again (>10m to hit WARN at a final pressure of 65%). For most of that time, memory consumption climbed very slowly with pressure holding around ~35%. It's as if
memory_pressure
is struggling to find pages to allocate, even though pressure is ostensibly low.And SPL has barely budged:
Finally, I reversed all of the tuning (thinking maybe the ARC minimums were causing SPL to hold memory)
exported the pool, and applied pressure, but the SPL is still holding >3GB
System info
Next steps?