block_ref GC todo queue length doesn't decrease #453
Labels
No Label
AdminAPI
Bug
Check AWS
CI
Correctness
Critical
Documentation
Ideas
Improvement
Low priority
Newcomer
Performance
S3 Compatibility
Testing
Usability
No Milestone
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: Deuxfleurs/garage#453
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
In a new 2-node cluster (v0.8.0) with one bucket and one object, the GC todo queue length doesn't decrease for block_ref:
The other numbers in
garage stats
are all 0.Full
garage.toml
:Cluster status:
I've also attached the logs for the two garage nodes.
I should mention that this is a new cluster because I nuked the old one after it also got stuck with non-zero numbers in
stats
. That one had run out of space on/mnt/meta
at some point and it didn't seem to recover after I gave it more space.For this cluster, I'd love to figure out what's going on, but I don't know what the next debugging step is.
That number stayed like that for at least a few hours, then increased with use (to 11464), then went to 0 a few days later. I don't think I've changed anything. In particular, I haven't restarted any nodes or made any changes to garage's configuration.
The cutoff in the logs looks likes this:
Between 2022-12-25T13:39:11 and 2022-12-27T11:53:46 (for about two days), there were no
(block_ref) GC
lines at all. It was just many of thoseResync block
/Deleting uneeded block
lines.The second node's log looks the same.
Oh, this is the GC delay described here. This was very surprising to me.
I propose the following improvements:
There should be some warning in
garage stats
that items will stay in the GC queues for at least 24h. All of my experience so far told me that an idling system that is reporting a non-empty work queue is in a broken state.The 100Mi size for the meta PVC in the helm chart is too small. In my original setup, I used that and
sled
(because there was no way to configure it tolmbd
), and I went over 100Mi with very light use. I had one largeish file and overwritting it a few times was enough.More generally, there should be some guidance on how large the meta directory needs to be. I'm now using
lmdb
, and after overwritting my one big file a few times a day, I see I'm using 29.4/200 Mi. Same goes for the data directory;bucket info
says the bucket is using 1.9G, but I see I'm using 4.04G in the PVC. This seems like more overhead that I would've expected from a storage system, but I could update my expectations if something was written down.Thanks for the report, I'll look into your suggestions.
For the Helm chart, I'm not qualified but maybe @maximilien wants to take a look?
This is a bit surprising, but could be a symptom of incomplete uploads (e.g. PutObject calls that were interrupted in the middle, or multipart uploads that were never finished). Check the unfinished uploads metrics in
bucket info
, if it is unexpectedly big you can usebucket cleanup-incomplete-uploads