# Ollama lento no Mac? Verifique carregamento, contexto e memória

> Use as informações de runtime e de tempo do Ollama para separar carregamento a frio, tamanho do contexto e pressão de memória, e depois descarregue modelos ociosos sem excluí-los.

Published: 2026-10-22 | Updated: 2026-10-25

O Ollama pode ficar lento porque um modelo ainda está carregando, um prompt tem um contexto grande, parte do modelo está rodando na CPU ou o Mac está sob pressão de memória. Esses casos exigem mudanças diferentes. Excluir modelos baixados pode liberar espaço em disco, mas não torna automaticamente mais rápida a geração de resposta do modelo em uso.

## Compare o carregamento a frio com uma segunda requisição

Mantenha o modelo, o prompt e as configurações iguais. Faça uma requisição curta e depois repita com o modelo ainda carregado. Se apenas a primeira requisição for lenta, o carregamento é uma pista útil. Se ambas gerarem devagar, investigue a execução e a memória. Registre a comparação em vez de tratar uma única resposta como benchmark.

A [documentação da API](https://docs.ollama.com/api/generate) do Ollama expõe campos de tempo separados, como `load_duration`, `prompt_eval_duration` e `eval_duration`, nas respostas concluídas. Eles distinguem carregamento, leitura do prompt e geração da saída. Não compare taxas de tokens de modelos, tamanhos de contexto ou prompts diferentes como se medissem uma única mudança.

## Medir uma solicitação local por etapa

Para um servidor local na porta usual, a solicitação a seguir facilita a inspeção dos campos de tempo ao retornar uma única resposta JSON. Substitua `MODEL_NAME` por um modelo local já instalado de `ollama list`; não use um modelo na nuvem para essa comparação. A solicitação executa inferência e consome recursos, mas não exclui os dados do modelo.

```bash
curl -sS http://localhost:11434/api/generate \
  -H 'Content-Type: application/json' \
  -d '{"model":"MODEL_NAME","prompt":"Explain what a file cache does in two sentences.","stream":false,"options":{"num_predict":128}}'
```

Execute a mesma solicitação novamente enquanto o modelo permanece carregado. Com o streaming desativado, o terminal exibe a resposta após a conclusão, portanto este comando serve para os campos de tempo retornados, não para cronometrar o primeiro token a olho. Se a solicitação falhar, mantenha o erro e interrompa a comparação em vez de interpretar um campo ausente como zero.

| Campo retornado | Como usá-lo |
| --- | --- |
| `load_duration` | Compare o tempo do primeiro carregamento com o dos carregamentos repetidos |
| `prompt_eval_count` e `prompt_eval_duration` | Veja quanto de entrada foi processado e seu custo |
| `eval_count` e `eval_duration` | Compare a geração de saída para a mesma carga de trabalho |
| `total_duration` | Mantenha o custo total da solicitação ao lado dos tempos dos componentes |

As durações documentadas estão em nanossegundos. Divida uma duração por 1.000.000.000 para obter segundos. Para a velocidade de saída, divida `eval_count` por `eval_duration / 1,000,000,000`, desde que a duração seja positiva. Como exemplo aritmético, `100` tokens em `5,000,000,000` nanossegundos resulta em `20` tokens por segundo; esse não é um resultado medido para nenhum Mac ou modelo.

Não divida os tokens de saída pela duração total e depois chame isso de velocidade pura de geração. Isso incluiria o carregamento e o trabalho de entrada. Observe também se o prompt repetido usa entrada em cache, porque uma segunda solicitação mais rápida pode refletir tanto um modelo aquecido quanto a reutilização do prompt. Mantenha a resposta completa em vez de relatar apenas o número mais favorável.

## Veja o que está realmente carregado

No Terminal, inspecione o estado atual:

```
ollama ps
```

O [FAQ do Ollama](https://docs.ollama.com/faq) explica a coluna `PROCESSOR`. Ela pode mostrar GPU, CPU ou uma divisão. O [guia de hardware](https://docs.ollama.com/gpu) documenta a aceleração Metal nas GPUs da Apple. Se você esperava que um modelo local usasse a GPU, o resultado em execução é mais útil do que uma suposição baseada no nome do Mac.

Confirme também que a requisição vai para o servidor local que você está inspecionando. Um front end pode apontar para outro host ou para um modelo na nuvem. Nesse caso, a saída local de `ollama ps` não descreve a requisição remota.

## Reduza o contexto antes de culpar o tamanho do modelo

Os arquivos do modelo são apenas parte do requisito de memória. Um contexto maior precisa de memória adicional, e requisições simultâneas acrescentam trabalho. A [documentação sobre o comprimento do contexto](https://docs.ollama.com/context-length) do Ollama descreve padrões que dependem do hardware e o controle de contexto do aplicativo. Não presuma que toda instalação tem o mesmo padrão.

Para um teste controlado, use um prompt curto, uma requisição e um contexto menor que ainda contenha as informações necessárias para esse teste. Se a tarefa de programação completa exigir mais contexto depois, restaure o suficiente para preservar o significado. Uma resposta mais rápida que perde silenciosamente instruções necessárias não é uma otimização bem-sucedida.

Experimente um modelo menor ou uma quantização apenas como comparação separada. Isso muda tanto o uso de recursos quanto a qualidade da resposta. Mantenha algumas perguntas representativas para avaliar se a opção mais rápida continua útil.

## Testar uma mudança de contexto sem torná-la permanente

Para um prompt de diagnóstico curto, a API aceita uma opção de contexto por solicitação. Na solicitação anterior, adicione `"num_ctx":4096` dentro de `options` junto com `num_predict`, usando um modelo local que ofereça suporte a esse contexto. Este é um tamanho de teste de exemplo, não uma configuração recomendada para todos os modelos ou tarefas de programação.

Mantenha o modelo e o prompt inalterados, depois inspecione o modelo em execução com `ollama ps` e compare a Pressão da Memória. Não reduza o contexto em torno de uma conversa longa e presuma que a resposta ainda inclui todas as instruções. Primeiro compare uma tarefa pequena que caiba; depois teste a carga de trabalho real com contexto suficiente para suas entradas.

O FAQ e a página dedicada ao comprimento de contexto descrevem os padrões de forma diferente, portanto este guia não se baseia em um padrão universal. Uma configuração do app, uma interface ou uma opção no nível da solicitação também pode afetar o valor em execução. Quando a versão instalada informa `CONTEXT` em `ollama ps`, registre esse valor junto com `PROCESSOR` em vez de inferi-lo pelo tamanho do arquivo do modelo.

Uma leitura de memória mais baixa não é a única condição de sucesso. A tarefa ainda precisa ser concluída com respostas aceitáveis, e o restante do Mac deve permanecer utilizável. Se um contexto menor descartar fatos importantes ou a mudança não fizer diferença repetível, remova a opção de teste e restaure a configuração anterior que funcionava.

## Observe o Mac inteiro durante a geração

Abra **Monitor de Atividade › Memória** e observe a pressão enquanto a geração acontece, não apenas depois que a resposta termina. O Apple Silicon usa memória de sistema compartilhada, então outros aplicativos também importam. Um modelo que cabe no disco não garante que caiba com folga junto do restante da sua carga de trabalho.

Salve o trabalho e feche uma tarefa pesada desnecessária, depois repita a mesma requisição. Se a pressão melhorar e a lentidão mudar junto, você tem uma pista útil. O [guia de pressão de memória](https://mole.fit/pt-br/blog/mac-memory-pressure-explained) explica como ler os indicadores do Mac sem tratar cada byte em cache como desperdício.

## Descarregue um modelo ocioso sem excluí-lo

Primeiro espere terminar qualquer requisição que use o modelo. Para liberar um modelo carregado que você não precisa mais, use `ollama stop` seguido do nome exato dele em `ollama ps`:

```
ollama stop MODEL_NAME
```

Substitua `MODEL_NAME` antes de executar o comando. Isso descarrega o modelo da memória. Não exclui os arquivos baixados, e a próxima requisição pode pagar novamente o custo de carregamento. Descarregar repetidamente um modelo entre requisições pode, portanto, tornar a experiência mais lenta.

Se o espaço em disco for a restrição real, revise os modelos armazenados separadamente no [guia de limpeza de modelos de IA](https://mole.fit/pt-br/blog/how-to-remove-ai-tool-leftovers-mac). Mantenha os modelos criados localmente e qualquer coisa que você não consiga baixar de novo com confiabilidade. Para desempenho, compare uma mudança por vez e mantenha o resultado vinculado à mesma carga de trabalho.
## Investigar uma divergência com o log do servidor

Se a solicitação local continuar lenta ou a divisão entre processadores for inesperada, o [guia de solução de problemas](https://docs.ollama.com/troubleshooting) do Ollama localiza o log do servidor do Mac em `~/.ollama/logs/server.log`. Leia a parte em torno do horário do teste e procure falhas de carregamento, problemas de alocação de memória ou o backend de execução selecionado. Para um servidor iniciado manualmente, as mensagens correspondentes podem estar no terminal dele.

Registre a versão do Ollama, a tag exata do modelo, o contexto, a divisão entre processadores e a etapa que domina os tempos. Revise trechos do log em busca de prompts privados e caminhos locais antes de compartilhá-los. Não altere várias variáveis de ambiente de GPU ou do servidor só porque elas aparecem em uma publicação antiga de otimização; o log deve primeiro identificar a divergência que a mudança pretende corrigir.

---

Canonical HTML page: https://mole.fit/pt-br/blog/ollama-slow-on-mac
Blog index for agents: https://mole.fit/pt-br/blog/llms.txt
Site index for agents: https://mole.fit/llms.txt
