~/tools / Ejecutar un LLM local en tu servidor / Ollama Log Reader
Ollama Log Reader — Lee un log de Ollama: memoria, capas en la GPU, contexto, velocidad
Pega el log del servidor de Ollama, de server.log, journalctl o docker logs, y la herramienta extrae lo importante: cuánta memoria usó cada carga de modelo y dónde (pesos, caché KV, buffers de cómputo, por CPU o GPU), cuántas capas fueron a la GPU, la longitud de contexto, las solicitudes y su estado, la velocidad del prompt y de la generación, y cada advertencia, con su explicación. Muestra cuándo se recortó un prompt para que cupiera en el contexto, cuándo un modelo no cupo en la memoria y cuándo Ollama volvió a cargar un modelo. Nada sale de tu navegador.
Dónde encontrar el log
De la página de solución de problemas de Ollama. En Windows, el log más reciente es server.log en esa carpeta.
# macOS cat ~/.ollama/logs/server.log # Linux (systemd) journalctl -u ollama --no-pager # Docker docker logs <container-name> # Windows explorer %LOCALAPPDATA%\Ollama
Se leyeron 76 de 77 líneas.
- línea 23El contexto es de 4096 tokens, menor que los 32768 que admite el modelo. Las entradas más largas necesitan un num_ctx u OLLAMA_CONTEXT_LENGTH mayor, y más memoria para la caché KV.
- línea 43El contexto es de 256 tokens, menor que los 32768 que admite el modelo. Las entradas más largas necesitan un num_ctx u OLLAMA_CONTEXT_LENGTH mayor, y más memoria para la caché KV.
- línea 49El prompt tenía 633 tokens y no cupo en el contexto. Ollama conservó los primeros 4 tokens y el final del prompt y descartó el resto, dejando 130 tokens. Aumenta num_ctx, acorta el prompt o envía truncate en false para obtener un error en su lugar.
- línea 53Una solicitud de 633 tokens no cupo en el contexto de 256 tokens y fue rechazada (esto ocurre cuando truncate es false). Aumenta num_ctx o acorta la entrada.
- línea 55Ollama detuvo llama-server y lo inició de nuevo enseguida para cargar el modelo con otros ajustes, por ejemplo otro num_ctx. Esto no es una caída.
- línea 58num_ctx 65536 es mayor que el contexto con el que se entrenó el modelo, así que Ollama usó 32768.
- Solicitudes fallidas: 400 POST /api/chat, 404 POST /api/chat
Servidor
- Versión
- 0.40.11
- Dirección
- [::]:11434
- Dispositivos
- cpu cpu (1.9 GiB / 1.9 GiB)
- Longitud de contexto predeterminada
- 4096
Ajustes (variables de entorno)
- OLLAMA_HOST
- http://0.0.0.0:11434
- OLLAMA_CONTEXT_LENGTH
- 0 (0 = predeterminado)
- OLLAMA_NUM_PARALLEL
- 1
- OLLAMA_MAX_LOADED_MODELS
- 0 (0 = predeterminado)
- OLLAMA_KEEP_ALIVE
- 5m0s
- OLLAMA_FLASH_ATTENTION
- false
Cargas de modelo
Carga 1 a las 2026-11-07T08:32:08.625Z línea 14
- Modelo
- Qwen2.5 0.5B Instruct · Q4_K - Medium · 373.71 MiB (6.35 BPW) · sha256-c5396e06af29
- Longitud de contexto
- 4096 (entrenado para 32768)
- Solicitudes en paralelo
- 1
- Pesos
- 512 MiB
- Caché KV
- 48.0 MiB (f16)
- Buffers de cómputo
- 41.3 MiB
- Total
- 601 MiB
- Por dispositivo
- CPU 393 MiB, CPU_REPACK 208 MiB
- Memoria del sistema
- 1638 MiB libres de 1946 MiB, swap 777 MiB libre
- Tiempo de arranque
- 1.27 s
Carga 2 a las 2026-11-07T08:32:10.384Z línea 34
- Modelo
- Qwen2.5 0.5B Instruct · Q4_K - Medium · 373.71 MiB (6.35 BPW) · sha256-c5396e06af29
- Longitud de contexto
- 256 (entrenado para 32768)
- Solicitudes en paralelo
- 1
- Pesos
- 512 MiB
- Caché KV
- 3.0 MiB (f16)
- Buffers de cómputo
- 18.8 MiB
- Total
- 533 MiB
- Por dispositivo
- CPU 325 MiB, CPU_REPACK 208 MiB
- Memoria del sistema
- 1638 MiB libres de 1946 MiB, swap 763 MiB libre
- Tiempo de arranque
- 1.02 s
Carga 3 a las 2026-11-07T08:32:12.223Z línea 59
- Modelo
- Qwen2.5 0.5B Instruct · Q4_K - Medium · 373.71 MiB (6.35 BPW) · sha256-c5396e06af29
- Longitud de contexto
- 32768 (entrenado para 32768)
- Solicitudes en paralelo
- 1
- Pesos
- 512 MiB
- Caché KV
- 384 MiB (f16)
- Buffers de cómputo
- 139 MiB
- Total
- 1034 MiB
- Por dispositivo
- CPU 826 MiB, CPU_REPACK 208 MiB
- Memoria del sistema
- 1638 MiB libres de 1946 MiB, swap 764 MiB libre
- Tiempo de arranque
- 1.02 s
Velocidad informada por llama-server
| Tokens de prompt procesados | Velocidad del prompt | Tokens generados | Velocidad de generación |
|---|---|---|---|
| 35 | 217.5 tokens/s | 7 | 59.9 tokens/s |
| 130 | 227.3 tokens/s | 11 | 94.8 tokens/s |
| 30 | 202.7 tokens/s | 5 | 62.7 tokens/s |
Solicitudes
| Hora | Estado | Duración | Solicitud |
|---|---|---|---|
| 2026/11/07 - 08:31:42 | 200 | 0.007 s | GET /api/version |
| 2026/11/07 - 08:32:00 | 200 | 17.49 s | POST /api/pull |
| 2026/11/07 - 08:32:00 | 200 | 0.040 s | GET /api/tags |
| 2026/11/07 - 08:32:10 | 200 | 1.62 s | POST /api/chat |
| 2026/11/07 - 08:32:12 | 200 | 1.89 s | POST /api/chat |
| 2026/11/07 - 08:32:12 | 400 | 0.005 s | POST /api/chat |
| 2026/11/07 - 08:32:13 | 200 | 1.31 s | POST /api/chat |
| 2026/11/07 - 08:32:13 | 404 | 0.002 s | POST /api/chat |
Cuando un prompt no cabe, Ollama lo recorta a num_ctx − max((num_ctx − num_keep) ÷ 2, 1) tokens: aproximadamente la mitad del contexto, para que quede espacio para la respuesta. Los tokens de prompt de la tabla de velocidad cuentan solo los tokens que no estaban en la caché.
llama-server no cuenta el primer token generado al calcular la velocidad de generación, así que su valor es algo menor que eval_count dividido por eval_duration en la respuesta de la API.
El formato del log cambia de una versión a otra. La herramienta sigue Ollama v0.40.15 y la compilación de llama.cpp que usa, y omite las líneas que no conoce.
Mensajes del código fuente de Ollama (v0.40.15) y de llama.cpp, comprobados con logs reales de Ollama 0.40.11 en macOS y en Linux el 2026-11-07. Ollama: Troubleshooting
Todo se hace en tu navegador. La herramienta no se conecta a nada. Los logs pueden contener rutas de archivos, direcciones IP y nombres de modelos.
Cuando Ollama va lento, las respuestas ignoran el principio de un prompt largo o una solicitud falla con un error 500, la explicación suele estar en el log del servidor. El log mezcla las líneas propias de Ollama (time=… level=… msg=…), una línea por solicitud HTTP ([GIN] …) y la salida de llama-server, el programa de llama.cpp que Ollama ejecuta para cargar cada modelo GGUF. Esta herramienta lee las tres cosas. Para cada carga de modelo muestra la longitud de contexto (-c), el número de solicitudes en paralelo (-np), el tipo y el tamaño del archivo del modelo, la longitud de contexto con la que se entrenó, cuántas capas se descargaron a la GPU, y la memoria de los pesos, de la caché KV y de los buffers de cómputo, por dispositivo. También lista las solicitudes con su estado y su duración, y la velocidad del prompt y de la generación que llama-server imprime después de cada solicitud. Después explica qué salió mal, usando los mensajes del código fuente de Ollama (v0.40.15). Cuando un prompt no cabe en el contexto, Ollama conserva los primeros num_keep tokens y el final del prompt, y descarta lo que hay en medio, hasta que el prompt ocupa aproximadamente la mitad del contexto: en nuestra prueba, un prompt de 633 tokens con num_ctx 256 se recortó a 130 tokens. Con truncate en false, la misma solicitud fue rechazada con un error 400. Un num_ctx superior a la longitud con la que se entrenó el modelo se reduce a esa longitud. Cuando un modelo no cabe en la memoria, la carga falla: en nuestra prueba en Linux con 1.9 GiB de memoria y sin GPU, qwen2.5:7b necesitó 4,460 MiB para sus pesos, llama-server se detuvo con signal: killed y la solicitud devolvió 500. Una línea que dice que llama-server terminó, seguida enseguida de un nuevo inicio, significa que Ollama estaba cargando el modelo otra vez con otros ajustes, no que se haya caído. El formato del log cambia de una versión a otra; la herramienta lee las líneas que conoce y omite el resto. Lo comprobamos con logs reales de Ollama 0.40.11 en macOS (Apple M1) y en Linux dentro de Docker, sin GPU.
La lógica principal de esta herramienta es de código abierto, con licencia MIT. github.com/seigo5555/toolkitbox-lib/src/ollama-log.ts
Casos de uso
- Averiguar por qué un prompt largo parece ignorarse, o por qué una solicitud falló con 400 o 500
- Ver cuánta memoria usó realmente un modelo, y si se ejecutó en la GPU, en la CPU o en ambas
- Comprobar qué longitud de contexto y qué ajustes usó el servidor, antes de comprar un VPS más grande
Cómo usarlo
- Obtén el log: cat ~/.ollama/logs/server.log en macOS, journalctl -u ollama --no-pager en Linux, o docker logs con el nombre del contenedor.
- Pégalo. También se leen las líneas que empiezan con una marca de tiempo de journalctl o de docker.
- Lee primero las advertencias, y después las cargas de modelo, la velocidad y las solicitudes.
FAQ
¿Por qué mi modelo ignora el principio de un prompt largo?
Si el log tiene una línea "truncating input prompt", el prompt no cupo en el contexto. Ollama conservó los primeros num_keep tokens y el final, y descartó la parte central, hasta que el prompt ocupó aproximadamente la mitad del contexto. Aumenta num_ctx (o OLLAMA_CONTEXT_LENGTH), acorta el prompt o envía truncate en false, para que Ollama devuelva un error en lugar de recortar.
¿Qué significa "signal: killed"?
llama-server fue detenido desde fuera. En nuestra prueba en Linux, esto ocurrió mientras se cargaba un modelo que no cabía en la memoria, y la solicitud devolvió 500. Si una nueva línea "starting llama-server" aparece en menos de dos segundos, Ollama detuvo él mismo el proceso anterior para cargar el modelo otra vez con otros ajustes.
¿Por qué la velocidad de generación del log es menor que eval_count dividido por eval_duration?
llama-server no cuenta el primer token generado, porque sale del último paso del procesamiento del prompt, así que divide por un token menos. En nuestra prueba, 7 tokens en 675.82 ms se informaron como 8.88 tokens por segundo, mientras que 7 dividido por el mismo tiempo da 10.4.
¿Cómo veo si el modelo se ejecutó en la GPU?
Mira "capas en la GPU" en la carga del modelo. Todas las capas en la GPU significa que el modelo se ejecutó allí por completo; algunas capas significa que el resto se ejecutó en la CPU. Mientras el modelo está cargado, ollama ps muestra la misma división en la columna PROCESSOR.
¿Por qué no se leen algunas líneas?
La herramienta lee las líneas propias de Ollama, las líneas de solicitud y las líneas de llama-server que importan para la memoria, el contexto y la velocidad. Las demás líneas, como la lista de metadatos del modelo, se omiten. El formato cambia entre versiones, por lo que las líneas de una versión mucho más antigua o más nueva pueden no reconocerse.
¿Mi log se envía a algún sitio?
No. El log se lee en tu navegador. Los logs pueden contener rutas de archivos, direcciones IP y los nombres de tus modelos, así que ten cuidado con dónde más los pegas.
Artículos relacionados
- Vigilar la memoria de Ollama en un VPS pequeñoMira qué mantiene Ollama en memoria, cuánto tiempo y qué ajustes lo cambian: ollama ps, keep_alive y los límites, según las preguntas frecuentes oficiales.
- Conectar Dify con Ollama en tu propio VPSEjecuta Dify en tu propio VPS y usa Ollama como su modelo: instalación, los campos del plugin, el problema de la dirección en Docker y los embeddings, según la documentación oficial.
- Empieza con un LLM local sin un PC caro: guía para principiantes sobre cómo usar un VPS¿No tienes un PC potente? Alquila un VPS y ejecuta un LLM local pequeño desde el navegador: seis pasos, desde la estimación de memoria hasta una pantalla de chat protegida, con los límites explicados con honestidad.