WIP: feat: make eval store configurable #451
No reviewers
Labels
No labels
automation
backend
bug
contributor experience
data
deployment
documentation
duplicate
good first issue
help wanted
nice to have
notifications
package maintainer
performance
skin
tech debt
user story
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lix-community/nix-security-tracker#451
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fricklerhandwerk/nix-eval-store"
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?
evaluations write garbage, which we don't use, to disk if we hit the physical store, so this should speed things up a bit
TODO to unblock:
Something to keep in mind if we're to implement this (and we might need to document it even if we keep using
/nix/store
): The tracker produces a lot of derivations, currently in the production instance we have ~1.3 million files in/nix/store
and that's only with 24.11 and part of 24.05 ingested. This makes it easy for a filesystem to run out of inodes (it happened earlier in the production instance and I had to intervene).A tmpfs with default settings has
number_of_pages / 2
inodes. This means that on a typical system with 16GB of memory and a pagesize of 4096, we get ~4 million pages, which means ~2 million inodes. Two million inodes might not be enough for our usecase, so we'll have to mount the tmpfs with more inodes instead of the default.Then again assuming a derivation is ~3kB in size (which I think is fairly typical) and we have ~1.5m of those, that's already almost 5GB of data, so we'll face memory issues as well as inode issues. If we really don't need those derivations, we should have a way to clean them as soon as we're done with them. And ideally not have them touch the disk but use a tmpfs, as per the original idea.
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.