--- a/envconfig/config.go +++ b/envconfig/config.go @@ -222,6 +222,8 @@ NoHistory = Bool("OLLAMA_NOHISTORY") // NoPrune disables pruning of model blobs on startup. NoPrune = Bool("OLLAMA_NOPRUNE") + // NoMMap disables memory mapping of the model file. + NoMMap = Bool("OLLAMA_NO_MMAP") // SchedSpread allows scheduling models across all GPUs. SchedSpread = Bool("OLLAMA_SCHED_SPREAD") // MultiUserCache optimizes prompt caching for multi-user scenarios @@ -326,6 +328,7 @@ "OLLAMA_NO_CLOUD": {"OLLAMA_NO_CLOUD", NoCloud(), "Disable Ollama cloud features (remote inference and web search)"}, "OLLAMA_NOHISTORY": {"OLLAMA_NOHISTORY", NoHistory(), "Do not preserve readline history"}, "OLLAMA_NOPRUNE": {"OLLAMA_NOPRUNE", NoPrune(), "Do not prune model blobs on startup"}, + "OLLAMA_NO_MMAP": {"OLLAMA_NO_MMAP", NoMMap(), "Disable memory mapping of the model file"}, "OLLAMA_NUM_PARALLEL": {"OLLAMA_NUM_PARALLEL", NumParallel(), "Maximum number of parallel requests"}, "OLLAMA_ORIGINS": {"OLLAMA_ORIGINS", AllowedOrigins(), "A comma separated list of allowed origins"}, "OLLAMA_SCHED_SPREAD": {"OLLAMA_SCHED_SPREAD", SchedSpread(), "Always schedule model across all GPUs"}, --- a/llm/llama_server.go +++ b/llm/llama_server.go @@ -628,7 +628,7 @@ } } - if opts.UseMMap != nil && !*opts.UseMMap { + if envconfig.NoMMap() || (opts.UseMMap != nil && !*opts.UseMMap) { return append(params, "--load-mode", "none") }