-
Notifications
You must be signed in to change notification settings - Fork 216
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
Cache not being cleaned up while using high-threshold option #1226
Comments
Is your use-case involves a lot of rename operations? Recently we have found an issue with file-cache where rename leaves the destination file in cache for ever. |
Hello @vibhansa-msft, actually no rename operations are involved, we're storing video files and our usecase is:
|
There can be potentially one of the two cases here:
|
Hey hey, Thanks for the feedback. For the
Find the log attached, this are from my last tests yesterday (when I set the default timeout for 120 seconds to confirm it will trigger a deletion of the files) and it works, it don't work as expected when we hit the high threshold of disk utilisation (for the test, I've created several files using |
Can you share your latest config file. I do see one issue here. Though there are multiple files to be deleted from cache the eviction logic stops are deleting just one of them, hence the cache usage keep rising. This points to some mis-configuration of file-cache and I suspect you have set max-eviction to a very low number somewhere.
|
Are you providing "max-eviction" anywhere in your config file or CLI parameters ? |
In logs I also observe a lot of time config file is being modified while blobfuse is mounted. Is there any reason to do so, just suspecting some config issues here while you keep on updating the config file on the fly. |
No, are relying on the default value (5000)
Don't recall to did any changes on the config during while tests are running, but I can try to repeat it and upload new results later today |
Yes we do provide it both as config and cli parameter. You shall not be setting it anywhere. These are tweaks for very specific usage and shall be used only after consulting with us. |
Hello again, So, I just re-run the tests. Here our actual configuration:
The command we're using to mount the volume is:
The command we've used to run the tests is:
If the Log file is attached. Thanks for the support! |
@vibhansa-msft if you need more information, please let me know, thanks! |
Thanks for sharing the logs. I was able to cross reference this with the code and 'du' is not working in your case because you have not set any cache limit for file-cache. When cache limit is not set blobfuse assumes entire disk is available for consumption and hence 'du' has no way to compute the % usage. 'du' is computing only the given directory size and if cache limit is set we compute the % usage and then match is against the threshold. If limit is not set then % computation is ignored and hence untill the timeout no eviction will hit. |
Will try to clean up the code and fix this in next release. |
Which version of blobfuse was used?
2.0.5, 2.0.6-preview.1 and 2.1.0-preview.2
Which OS distribution and version are you using?
Ubuntu 22.04
If relevant, please share your mount command.
Not exactly the mount command, but my .yaml file used to mount the volume:
What was the issue encountered?
In a similar fashion of the #1114 the cache are not being cleaned up based on configuration parameters. The documentation states the parameter
high-threshold
overrides the value set totimeout-sec
, but that's not happening.Have you found a mitigation/solution?
Tried to use a compiled version from
main
(2.0.6-preview.1) and from2.1.0-preview.2
with no luck (looks like the changes introduced here didn't fixed this issue)The text was updated successfully, but these errors were encountered: