~/tools / Rodar um LLM local no seu servidor / Ollama Log Reader

Ollama Log Reader — Leia um log do Ollama: memória, camadas na GPU, contexto, velocidade

Cole o log do servidor do Ollama, de server.log, journalctl ou docker logs, e a ferramenta extrai o que importa: quanta memória cada carga de modelo usou e onde (pesos, KV cache, buffers de computação, por CPU ou GPU), quantas camadas foram para a GPU, o tamanho do contexto, as requisições e o status delas, a velocidade do prompt e da geração, e cada aviso, com uma explicação. Ela mostra quando um prompt foi cortado para caber no contexto, quando um modelo não coube na memória e quando o Ollama recarregou um modelo. Nada sai do seu navegador.

Onde encontrar o log

Da página de solução de problemas do Ollama. No Windows, o log mais recente é server.log nessa pasta.

# macOS
cat ~/.ollama/logs/server.log

# Linux (systemd)
journalctl -u ollama --no-pager

# Docker
docker logs <container-name>

# Windows
explorer %LOCALAPPDATA%\Ollama

Foram lidas 76 de 77 linhas.

  • linha 23O contexto é de 4096 tokens, menor que os 32768 que o modelo suporta. Entradas mais longas precisam de um num_ctx ou OLLAMA_CONTEXT_LENGTH maior, e de mais memória para o KV cache.
  • linha 43O contexto é de 256 tokens, menor que os 32768 que o modelo suporta. Entradas mais longas precisam de um num_ctx ou OLLAMA_CONTEXT_LENGTH maior, e de mais memória para o KV cache.
  • linha 49O prompt tinha 633 tokens e não coube no contexto. O Ollama manteve os primeiros 4 tokens e o final do prompt e descartou o resto, ficando com 130 tokens. Aumente num_ctx, encurte o prompt ou envie truncate definido como false para receber um erro.
  • linha 53Uma requisição de 633 tokens não coube no contexto de 256 tokens e foi rejeitada (isso acontece quando truncate é false). Aumente num_ctx ou encurte a entrada.
  • linha 55O Ollama parou o llama-server e o iniciou de novo logo em seguida para carregar o modelo com outras configurações, por exemplo outro num_ctx. Isso não é uma falha.
  • linha 58num_ctx 65536 é maior que o contexto com que o modelo foi treinado, então o Ollama usou 32768.
  • Requisições com falha: 400 POST /api/chat, 404 POST /api/chat

Servidor

Versão
0.40.11
Endereço
[::]:11434
Dispositivos
cpu cpu (1.9 GiB / 1.9 GiB)
Tamanho de contexto padrão
4096

Configurações (variáveis de ambiente)

OLLAMA_HOST
http://0.0.0.0:11434
OLLAMA_CONTEXT_LENGTH
0 (0 = padrão)
OLLAMA_NUM_PARALLEL
1
OLLAMA_MAX_LOADED_MODELS
0 (0 = padrão)
OLLAMA_KEEP_ALIVE
5m0s
OLLAMA_FLASH_ATTENTION
false

Cargas de modelo

Carga 1 às 2026-11-07T08:32:08.625Z linha 14

Modelo
Qwen2.5 0.5B Instruct · Q4_K - Medium · 373.71 MiB (6.35 BPW) · sha256-c5396e06af29
Tamanho do contexto
4096 (treinado para 32768)
Requisições paralelas
1
Pesos
512 MiB
KV cache
48.0 MiB (f16)
Buffers de computação
41.3 MiB
Total
601 MiB
Por dispositivo
CPU 393 MiB, CPU_REPACK 208 MiB
Memória do sistema
1638 MiB livres de 1946 MiB, swap 777 MiB livre
Tempo de inicialização
1.27 s

Carga 2 às 2026-11-07T08:32:10.384Z linha 34

Modelo
Qwen2.5 0.5B Instruct · Q4_K - Medium · 373.71 MiB (6.35 BPW) · sha256-c5396e06af29
Tamanho do contexto
256 (treinado para 32768)
Requisições paralelas
1
Pesos
512 MiB
KV cache
3.0 MiB (f16)
Buffers de computação
18.8 MiB
Total
533 MiB
Por dispositivo
CPU 325 MiB, CPU_REPACK 208 MiB
Memória do sistema
1638 MiB livres de 1946 MiB, swap 763 MiB livre
Tempo de inicialização
1.02 s

Carga 3 às 2026-11-07T08:32:12.223Z linha 59

Modelo
Qwen2.5 0.5B Instruct · Q4_K - Medium · 373.71 MiB (6.35 BPW) · sha256-c5396e06af29
Tamanho do contexto
32768 (treinado para 32768)
Requisições paralelas
1
Pesos
512 MiB
KV cache
384 MiB (f16)
Buffers de computação
139 MiB
Total
1034 MiB
Por dispositivo
CPU 826 MiB, CPU_REPACK 208 MiB
Memória do sistema
1638 MiB livres de 1946 MiB, swap 764 MiB livre
Tempo de inicialização
1.02 s

Velocidade informada pelo llama-server

Tokens de prompt processadosVelocidade do promptTokens geradosVelocidade de geração
35217.5 tokens/s759.9 tokens/s
130227.3 tokens/s1194.8 tokens/s
30202.7 tokens/s562.7 tokens/s

Requisições

HoraStatusDuraçãoRequisição
2026/11/07 - 08:31:422000.007 sGET /api/version
2026/11/07 - 08:32:0020017.49 sPOST /api/pull
2026/11/07 - 08:32:002000.040 sGET /api/tags
2026/11/07 - 08:32:102001.62 sPOST /api/chat
2026/11/07 - 08:32:122001.89 sPOST /api/chat
2026/11/07 - 08:32:124000.005 sPOST /api/chat
2026/11/07 - 08:32:132001.31 sPOST /api/chat
2026/11/07 - 08:32:134040.002 sPOST /api/chat

Quando um prompt não cabe, o Ollama o corta para num_ctx − max((num_ctx − num_keep) ÷ 2, 1) tokens: cerca de metade do contexto, para que sobre espaço para a resposta. Os tokens de prompt na tabela de velocidade contam apenas os tokens que não estavam no cache.

O llama-server não conta o primeiro token gerado ao calcular a velocidade de geração, então o valor dele é um pouco menor que eval_count dividido por eval_duration na resposta da API.

O formato do log muda de versão para versão. A ferramenta segue o Ollama v0.40.15 e a versão do llama.cpp que ele usa, e ignora as linhas que não conhece.

Mensagens do código-fonte do Ollama (v0.40.15) e do llama.cpp, verificadas com logs reais do Ollama 0.40.11 em macOS e em Linux em 2026-11-07. Ollama: Troubleshooting

Tudo é feito no seu navegador. A ferramenta não se conecta a nada. Os logs podem conter caminhos de arquivos, endereços IP e nomes de modelos.

Quando o Ollama está lento, as respostas ignoram o início de um prompt longo ou uma requisição falha com um erro 500, a explicação costuma estar no log do servidor. O log mistura as linhas do próprio Ollama (time=… level=… msg=…), uma linha por requisição HTTP ([GIN] …) e a saída do llama-server, o programa do llama.cpp que o Ollama executa para carregar cada modelo GGUF. Esta ferramenta lê as três coisas. Para cada carga de modelo, mostra o tamanho do contexto (-c), o número de requisições paralelas (-np), o tipo e o tamanho do arquivo do modelo, o tamanho de contexto com que ele foi treinado, quantas camadas foram descarregadas para a GPU, e a memória dos pesos, do KV cache e dos buffers de computação, por dispositivo. Ela também lista as requisições com seu status e duração, e a velocidade do prompt e da geração que o llama-server imprime depois de cada requisição. Depois explica o que deu errado, usando as mensagens do código-fonte do Ollama (v0.40.15). Quando um prompt não cabe no contexto, o Ollama mantém os primeiros num_keep tokens e o final do prompt, e descarta o que está no meio, até que o prompt ocupe cerca de metade do contexto: no nosso teste, um prompt de 633 tokens com num_ctx 256 foi cortado para 130 tokens. Com truncate definido como false, a mesma requisição foi rejeitada com um erro 400. Um num_ctx acima do tamanho com que o modelo foi treinado é reduzido a esse tamanho. Quando um modelo não cabe na memória, a carga falha: no nosso teste em Linux com 1.9 GiB de memória e sem GPU, o qwen2.5:7b precisou de 4,460 MiB para os pesos, o llama-server foi parado com signal: killed e a requisição retornou 500. Uma linha dizendo que o llama-server terminou, seguida logo por um novo início, significa que o Ollama estava carregando o modelo de novo com outras configurações, não que ele travou. O formato do log muda de versão para versão; a ferramenta lê as linhas que conhece e ignora o resto. Nós a verificamos com logs reais do Ollama 0.40.11 em macOS (Apple M1) e em Linux no Docker, sem GPU.

A lógica principal desta ferramenta é de código aberto, sob a licença MIT. github.com/seigo5555/toolkitbox-lib/src/ollama-log.ts

Casos de uso

  • Descobrir por que um prompt longo parece ser ignorado, ou por que uma requisição falhou com 400 ou 500
  • Ver quanta memória um modelo realmente usou, e se ele rodou na GPU, na CPU ou em ambas
  • Verificar qual tamanho de contexto e quais configurações o servidor usou, antes de comprar uma VPS maior

Como usar

  1. Obtenha o log: cat ~/.ollama/logs/server.log no macOS, journalctl -u ollama --no-pager no Linux, ou docker logs com o nome do contêiner.
  2. Cole-o. As linhas que começam com um carimbo de data e hora do journalctl ou do docker também são lidas.
  3. Leia primeiro os avisos, depois as cargas de modelo, a velocidade e as requisições.

FAQ

Por que meu modelo ignora o início de um prompt longo?

Se o log tiver uma linha "truncating input prompt", o prompt não coube no contexto. O Ollama manteve os primeiros num_keep tokens e o final, e descartou o meio, até que o prompt ocupasse cerca de metade do contexto. Aumente num_ctx (ou OLLAMA_CONTEXT_LENGTH), encurte o prompt ou envie truncate definido como false, para que o Ollama retorne um erro em vez de cortar.

O que significa "signal: killed"?

O llama-server foi parado de fora. No nosso teste em Linux, isso aconteceu enquanto um modelo que não cabia na memória estava sendo carregado, e a requisição retornou 500. Se uma nova linha "starting llama-server" aparecer em até dois segundos, o próprio Ollama parou o processo antigo para carregar o modelo de novo com outras configurações.

Por que a velocidade de geração no log é menor que eval_count dividido por eval_duration?

O llama-server não conta o primeiro token gerado, porque ele vem da última etapa do processamento do prompt, então divide por um token a menos. No nosso teste, 7 tokens em 675.82 ms foram informados como 8.88 tokens por segundo, enquanto 7 dividido pelo mesmo tempo dá 10.4.

Como vejo se o modelo rodou na GPU?

Veja "camadas na GPU" na carga do modelo. Todas as camadas na GPU significa que o modelo rodou lá por completo; algumas camadas significa que o resto rodou na CPU. Enquanto o modelo está carregado, ollama ps mostra a mesma divisão na coluna PROCESSOR.

Por que algumas linhas não são lidas?

A ferramenta lê as linhas do próprio Ollama, as linhas de requisição e as linhas do llama-server que importam para memória, contexto e velocidade. As outras linhas, como a lista de metadados do modelo, são ignoradas. O formato muda entre versões, então linhas de uma versão muito mais antiga ou mais nova podem não ser reconhecidas.

Meu log é enviado para algum lugar?

Não. O log é lido no seu navegador. Os logs podem conter caminhos de arquivos, endereços IP e os nomes dos seus modelos, então tenha cuidado com onde mais você os cola.

Artigos relacionados

Relacionados