BeginnerMac / Apple 3 min read

M1 / M2 Mac 8GB: Realistic Ollama Limits

Unified memory is shared with macOS — here is what actually works on base MacBooks without swapping.

Written against

M1/M2 8GB Mac · Ollama 0.6+ · GGUF Q4_K_M · 3B-class models · short context

Not re-run since it was last edited — treat the commands as a starting point, not a tested recipe.

M1M28GB RAMOllamaMetal

What you need first

An M1 or M2 Mac with the base 8GB unified memory configuration, and a realistic expectation set before you start: this is the tightest capacity tier this site covers, and the honest goal is a genuinely usable 3B-class assistant, not a smaller version of what a 24GB card runs.

bash
brew install ollama
ollama --version

This index has no M1/M2 base entry — here is the substitute

The GPU database behind this site’s calculator has no M1 or M2 base-tier row — only M2 Max and M2 Ultra, the higher configurations. The 8GB capacity figures below use the Mac M3 8G entry as a stand-in, since the calculator only reads capacity, and 8GB is 8GB regardless of chip generation. Bandwidth is not: the M3 entry is rated at 100 GB/s, while the M2 base chip is close to that at 100 GB/s and the original M1 base chip is meaningfully slower at roughly 68 GB/s. On an M1 specifically, expect generation speed below what the M3-based numbers here would suggest; on an M2, expect them to be close.

What actually fits

At Q4_K_M and 4K context: Llama 3.2 3B is 2.5 GB total, Qwen2.5 3B is 2.2 GB, Phi-3.5 Mini is 4.1 GB — all comfortable on 8GB with macOS and a browser running. An 8B model at Q4_K_M is 5.6 GB on its own, which sounds like it should fit, but the unified-memory reality below is what actually decides it.

bash
ollama pull llama3.2:3b
ollama run llama3.2:3b

The unified-memory limit nobody mentions

macOS reserves part of the 8GB pool for the system and caps what one process may wire down — on an 8GB machine that cap leaves meaningfully less than 8GB for a model, and it is why an 8B model that "should" fit by the raw arithmetic often does not in practice. This is the same mechanism every Mac on this site is subject to; it simply has no slack to spare at 8GB the way it does at 48GB.

bash
sysctl iogpu.wired_limit_mb   # 0 = default policy, not "no limit"

Check it actually ran on the GPU

On unified memory there is no separate VRAM figure to watch, so ask Ollama directly. If `ollama ps` reports anything other than 100% GPU on a 3B model, something else is holding memory — close browser tabs with hardware acceleration before assuming the model itself is the problem.

bash
ollama ps
# NAME           SIZE     PROCESSOR    UNTIL
# llama3.2:3b    2.9 GB   100% GPU     4 minutes from now

Settings worth changing on 8GB specifically

Keep one model loaded at a time and do not run parallel requests — both defaults already favour this, but it is worth being explicit on the tightest tier, where a second model loading while the first has not finished unloading is what causes real thrashing.

bash
export OLLAMA_NUM_PARALLEL=1        # already the default
export OLLAMA_MAX_LOADED_MODELS=1
ollama run llama3.2:3b

When it does not work

The whole machine slows to a crawl while a model is loaded: that is swapping, and it means the model plus everything else exceeded the practical wired limit — the fix is a smaller model, not a setting, since there is no headroom left to tune away. `ollama ps` shows a CPU share on a 3B model: something else is holding memory; check Activity Monitor before assuming the model is too big for its own numbers. An 8B model refuses to run well: this is expected at 8GB — the 3B tier is the honest ceiling here, not a limitation of this particular guide’s settings.

Common questions

Can an 8GB M1 or M2 Mac run an 8B model?

Poorly, if at all. Llama 3.1 8B at Q4_K_M needs 5.6 GB on its own, and macOS reserves part of the 8GB pool for the system while capping what one process may wire down — on the tightest tier that cap leaves little slack. A 3B-class model is the realistic ceiling for consistently usable performance on 8GB.

Does this guide’s data apply to the original M1 the same as an M2?

The capacity numbers do — 8GB is 8GB. Speed does not: this site’s calculator has no M1 or M2 base-tier entry and substitutes the Mac M3 8G row for capacity, which is rated at 100 GB/s. The original M1 base chip is meaningfully slower, around 68 GB/s, so expect generation speed below what the figures here imply; the M2 base chip is close to the M3 figure.

How do I stop Ollama from thrashing my 8GB Mac?

Keep one model loaded at a time (`OLLAMA_MAX_LOADED_MODELS=1`), avoid parallel requests (`OLLAMA_NUM_PARALLEL=1`, already the default), and pick a 3B-class model rather than pushing an 8B into a budget that has no slack for it. If the whole machine slows down while a model is loaded, that is swapping, and the fix is a smaller model, not a setting.

What this guide uses

Hardware
Mac M3 8G8GB
Format
GGUF

Next steps

See everything that fits 🍎 Mac M3 8GReverse lookup — 8GB at 4096 context, ranked by quality

Models covered in this guide

Did this actually run?

Copying a command is not the same as it working, so this is the only place the site asks. Nothing is collected beyond the answer itself.

Related guides

Deployment guides are educational. Each model is subject to its own license — read the official Hugging Face model card before downloading or deploying.