~/tools / Faire tourner un LLM local sur votre serveur / Ollama Log Reader

Ollama Log Reader — Lisez un journal Ollama : mémoire, couches GPU, contexte, vitesse

Collez le journal du serveur d'Ollama, issu de server.log, de journalctl ou de docker logs, et l'outil en extrait l'essentiel : la mémoire que chaque chargement de modèle a prise et où (poids, KV cache, tampons de calcul, par CPU ou GPU), le nombre de couches placées sur le GPU, la longueur de contexte, les requêtes et leur statut, la vitesse du prompt et de la génération, et chaque avertissement, avec une explication. Il montre quand un prompt a été coupé pour tenir dans le contexte, quand un modèle n'a pas tenu en mémoire et quand Ollama a rechargé un modèle. Rien ne quitte votre navigateur.

Où trouver le journal

Depuis la page de dépannage d'Ollama. Sous Windows, le journal le plus récent est server.log dans ce dossier.

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

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

# Docker
docker logs <container-name>

# Windows
explorer %LOCALAPPDATA%\Ollama

76 lignes lues sur 77.

  • ligne 23Le contexte est de 4096 tokens, plus court que les 32768 que le modèle prend en charge. Des entrées plus longues demandent un num_ctx ou un OLLAMA_CONTEXT_LENGTH plus grand, et plus de mémoire pour le KV cache.
  • ligne 43Le contexte est de 256 tokens, plus court que les 32768 que le modèle prend en charge. Des entrées plus longues demandent un num_ctx ou un OLLAMA_CONTEXT_LENGTH plus grand, et plus de mémoire pour le KV cache.
  • ligne 49Le prompt faisait 633 tokens et ne tenait pas dans le contexte. Ollama a gardé les 4 premiers tokens et la fin du prompt et supprimé le reste, ce qui laisse 130 tokens. Augmentez num_ctx, raccourcissez le prompt, ou envoyez truncate à false pour obtenir une erreur à la place.
  • ligne 53Une requête de 633 tokens ne tenait pas dans le contexte de 256 tokens et a été rejetée (cela arrive quand truncate vaut false). Augmentez num_ctx ou raccourcissez l'entrée.
  • ligne 55Ollama a arrêté llama-server et l'a redémarré aussitôt pour charger le modèle avec d'autres réglages, par exemple un autre num_ctx. Ce n'est pas un plantage.
  • ligne 58num_ctx 65536 est plus long que le contexte pour lequel le modèle a été entraîné, donc Ollama a utilisé 32768.
  • Requêtes en échec : 400 POST /api/chat, 404 POST /api/chat

Serveur

Version
0.40.11
Adresse
[::]:11434
Appareils
cpu cpu (1.9 GiB / 1.9 GiB)
Longueur de contexte par défaut
4096

Réglages (variables d'environnement)

OLLAMA_HOST
http://0.0.0.0:11434
OLLAMA_CONTEXT_LENGTH
0 (0 = par défaut)
OLLAMA_NUM_PARALLEL
1
OLLAMA_MAX_LOADED_MODELS
0 (0 = par défaut)
OLLAMA_KEEP_ALIVE
5m0s
OLLAMA_FLASH_ATTENTION
false

Chargements de modèle

Chargement 1 à 2026-11-07T08:32:08.625Z ligne 14

Modèle
Qwen2.5 0.5B Instruct · Q4_K - Medium · 373.71 MiB (6.35 BPW) · sha256-c5396e06af29
Longueur de contexte
4096 (entraîné pour 32768)
Requêtes parallèles
1
Poids
512 MiB
KV cache
48.0 MiB (f16)
Tampons de calcul
41.3 MiB
Total
601 MiB
Par appareil
CPU 393 MiB, CPU_REPACK 208 MiB
Mémoire du système
1638 MiB libres sur 1946 MiB, swap 777 MiB libre
Temps de démarrage
1.27 s

Chargement 2 à 2026-11-07T08:32:10.384Z ligne 34

Modèle
Qwen2.5 0.5B Instruct · Q4_K - Medium · 373.71 MiB (6.35 BPW) · sha256-c5396e06af29
Longueur de contexte
256 (entraîné pour 32768)
Requêtes parallèles
1
Poids
512 MiB
KV cache
3.0 MiB (f16)
Tampons de calcul
18.8 MiB
Total
533 MiB
Par appareil
CPU 325 MiB, CPU_REPACK 208 MiB
Mémoire du système
1638 MiB libres sur 1946 MiB, swap 763 MiB libre
Temps de démarrage
1.02 s

Chargement 3 à 2026-11-07T08:32:12.223Z ligne 59

Modèle
Qwen2.5 0.5B Instruct · Q4_K - Medium · 373.71 MiB (6.35 BPW) · sha256-c5396e06af29
Longueur de contexte
32768 (entraîné pour 32768)
Requêtes parallèles
1
Poids
512 MiB
KV cache
384 MiB (f16)
Tampons de calcul
139 MiB
Total
1034 MiB
Par appareil
CPU 826 MiB, CPU_REPACK 208 MiB
Mémoire du système
1638 MiB libres sur 1946 MiB, swap 764 MiB libre
Temps de démarrage
1.02 s

Vitesse indiquée par llama-server

Tokens de prompt traitésVitesse du promptTokens générésVitesse de génération
35217.5 tokens/s759.9 tokens/s
130227.3 tokens/s1194.8 tokens/s
30202.7 tokens/s562.7 tokens/s

Requêtes

HeureStatutDuréeRequête
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

Quand un prompt ne tient pas, Ollama le coupe à num_ctx − max((num_ctx − num_keep) ÷ 2, 1) tokens : environ la moitié du contexte, pour qu'il reste de la place pour la réponse. Les tokens de prompt du tableau des vitesses ne comptent que les tokens qui n'étaient pas dans le cache.

llama-server ne compte pas le premier token généré quand il calcule la vitesse de génération ; sa valeur est donc un peu plus basse que eval_count divisé par eval_duration dans la réponse de l'API.

Le format du journal change d'une version à l'autre. L'outil suit Ollama v0.40.15 et la version de llama.cpp qu'il utilise, et ignore les lignes qu'il ne connaît pas.

Messages du code source d'Ollama (v0.40.15) et de llama.cpp, vérifiés avec de vrais journaux d'Ollama 0.40.11 sous macOS et sous Linux le 2026-11-07. Ollama : Troubleshooting

Tout se passe dans votre navigateur. L'outil ne se connecte à rien. Les journaux peuvent contenir des chemins de fichiers, des adresses IP et des noms de modèles.

Quand Ollama est lent, que les réponses ignorent le début d'un long prompt ou qu'une requête échoue avec une erreur 500, l'explication se trouve généralement dans le journal du serveur. Le journal mélange les lignes propres à Ollama (time=… level=… msg=…), une ligne par requête HTTP ([GIN] …) et la sortie de llama-server, le programme de llama.cpp qu'Ollama exécute pour charger chaque modèle GGUF. Cet outil lit ces trois sources. Pour chaque chargement de modèle, il indique la longueur de contexte (-c), le nombre de requêtes parallèles (-np), le type et la taille du fichier du modèle, la longueur de contexte pour laquelle il a été entraîné, le nombre de couches déchargées sur le GPU, et la mémoire des poids, du KV cache et des tampons de calcul, par appareil. Il liste aussi les requêtes avec leur statut et leur durée, ainsi que la vitesse du prompt et de la génération que llama-server affiche après chaque requête. Ensuite, il explique ce qui s'est mal passé, à partir des messages du code source d'Ollama (v0.40.15). Quand un prompt ne tient pas dans le contexte, Ollama garde les num_keep premiers tokens et la fin du prompt, et supprime ce qui se trouve entre les deux, jusqu'à ce que le prompt occupe environ la moitié du contexte : dans notre test, un prompt de 633 tokens avec num_ctx 256 a été coupé à 130 tokens. Avec truncate à false, la même requête a été rejetée avec une erreur 400. Un num_ctx supérieur à la longueur pour laquelle le modèle a été entraîné est ramené à cette longueur. Quand un modèle ne tient pas en mémoire, le chargement échoue : dans notre test sous Linux avec 1.9 GiB de mémoire et sans GPU, qwen2.5:7b avait besoin de 4,460 MiB pour ses poids, llama-server a été arrêté avec signal: killed et la requête a renvoyé 500. Une ligne indiquant que llama-server s'est terminé, suivie aussitôt d'un nouveau démarrage, signifie qu'Ollama rechargeait le modèle avec d'autres réglages, pas qu'il a planté. Le format du journal change d'une version à l'autre ; l'outil lit les lignes qu'il connaît et ignore les autres. Nous l'avons vérifié avec de vrais journaux d'Ollama 0.40.11 sous macOS (Apple M1) et sous Linux dans Docker, sans GPU.

Le cœur de cet outil est open source, sous licence MIT. github.com/seigo5555/toolkitbox-lib/src/ollama-log.ts

Cas d'usage

  • Comprendre pourquoi un long prompt semble ignoré, ou pourquoi une requête a échoué avec 400 ou 500
  • Voir combien de mémoire un modèle a réellement utilisée, et s'il a tourné sur le GPU, sur le CPU ou sur les deux
  • Vérifier quelle longueur de contexte et quels réglages le serveur a utilisés, avant d'acheter un VPS plus grand

Utilisation

  1. Récupérez le journal : cat ~/.ollama/logs/server.log sous macOS, journalctl -u ollama --no-pager sous Linux, ou docker logs avec le nom du conteneur.
  2. Collez-le. Les lignes qui commencent par un horodatage de journalctl ou de docker sont lues aussi.
  3. Lisez d'abord les avertissements, puis les chargements de modèle, la vitesse et les requêtes.

FAQ

Pourquoi mon modèle ignore-t-il le début d'un long prompt ?

Si le journal contient une ligne "truncating input prompt", le prompt ne tenait pas dans le contexte. Ollama a gardé les num_keep premiers tokens et la fin, et supprimé le milieu, jusqu'à ce que le prompt occupe environ la moitié du contexte. Augmentez num_ctx (ou OLLAMA_CONTEXT_LENGTH), raccourcissez le prompt, ou envoyez truncate à false, pour qu'Ollama renvoie une erreur au lieu de couper.

Que signifie "signal: killed" ?

llama-server a été arrêté de l'extérieur. Dans notre test sous Linux, cela s'est produit pendant le chargement d'un modèle qui ne tenait pas en mémoire, et la requête a renvoyé 500. Si une nouvelle ligne "starting llama-server" suit dans les deux secondes, Ollama a lui-même arrêté l'ancien processus pour recharger le modèle avec d'autres réglages.

Pourquoi la vitesse de génération du journal est-elle inférieure à eval_count divisé par eval_duration ?

llama-server ne compte pas le premier token généré, car il provient de la dernière étape du traitement du prompt ; il divise donc par un token de moins. Dans notre test, 7 tokens en 675.82 ms ont été indiqués comme 8.88 tokens par seconde, alors que 7 divisé par le même temps donne 10.4.

Comment voir si le modèle a tourné sur le GPU ?

Regardez "couches sur le GPU" pour le chargement du modèle. Toutes les couches sur le GPU signifie que le modèle y a tourné entièrement ; quelques couches signifie que le reste a tourné sur le CPU. Tant que le modèle est chargé, ollama ps affiche la même répartition dans la colonne PROCESSOR.

Pourquoi certaines lignes ne sont-elles pas lues ?

L'outil lit les lignes propres à Ollama, les lignes de requête et les lignes de llama-server qui comptent pour la mémoire, le contexte et la vitesse. Les autres lignes, comme la liste des métadonnées du modèle, sont ignorées. Le format change d'une version à l'autre ; les lignes d'une version beaucoup plus ancienne ou plus récente peuvent donc ne pas être reconnues.

Mon journal est-il envoyé quelque part ?

Non. Le journal est lu dans votre navigateur. Les journaux peuvent contenir des chemins de fichiers, des adresses IP et les noms de vos modèles ; faites donc attention à l'endroit où vous les collez ailleurs.

Articles liés

Voir aussi