mirror of
https://github.com/zebrajr/ollama.git
synced 2025-12-06 12:19:56 +01:00
This reintroduces aggressive pruning on model deletion as a temporary
measure until a more controlled garbage collection (GC) mechanism is
implemented.
Issues with the current approach:
1. Users may accidentally delete a model (`ollama rm llama3.3` instead
of `ollama rm llama3.2`), requiring a full re-download unless another
model references the same blobs.
2. Users may assume a deleted model is still referenced elsewhere, but
due to prior updates or deletions, the references no longer exist,
leading to unnecessary re-downloads.
Soon, we should implement a structured GC mechanism to retain
unreferenced blobs for a configurable period before removal, which will
run on "ollama rm" and other commands we deem appropriate.
Users that want to immediately remove unreferenced blobs can use a new
prune command that will allow them to specify the age and class of blobs
to remove.
Example usage:
# Run basic blob GC
$ ollama prune
# Remove unreferenced blobs older than 7 days
$ ollama prune --age 7d
# Remove all blobs, referenced or not, older than 7 days (and their manifests?)
$ ollama prune --age 7d --all
# Remove all unreferenced blobs immediately
$ ollama prune --age 0 --all
# Remove all blobs
$ ollama prune --age 0 --all
This should provide a safer and more predictable cleanup process.
|
||
|---|---|---|
| .. | ||
| internal | ||
| testdata/tools | ||
| auth.go | ||
| create_test.go | ||
| create.go | ||
| download.go | ||
| fixblobs_test.go | ||
| fixblobs.go | ||
| images.go | ||
| layer.go | ||
| manifest_test.go | ||
| manifest.go | ||
| model_test.go | ||
| model.go | ||
| modelpath_test.go | ||
| modelpath.go | ||
| prompt_test.go | ||
| prompt.go | ||
| routes_create_test.go | ||
| routes_delete_test.go | ||
| routes_generate_test.go | ||
| routes_list_test.go | ||
| routes_test.go | ||
| routes.go | ||
| sched_test.go | ||
| sched.go | ||
| sparse_common.go | ||
| sparse_windows.go | ||
| upload.go | ||