~/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és | Vitesse du prompt | Tokens générés | Vitesse de génération |
|---|---|---|---|
| 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 |
Requêtes
| Heure | Statut | Durée | Requête |
|---|---|---|---|
| 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 |
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
- 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.
- Collez-le. Les lignes qui commencent par un horodatage de journalctl ou de docker sont lues aussi.
- 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
- Surveiller la mémoire d'Ollama sur un petit VPSVoir ce qu'Ollama garde en mémoire, combien de temps et quels réglages changent cela : ollama ps, keep_alive et les limites, d'après la FAQ officielle.
- Connecter Dify à Ollama sur votre propre VPSFaites tourner Dify sur votre propre VPS avec Ollama comme modèle : installation, champs du plugin, problème d'adresse dans Docker et embeddings, d'après la documentation officielle.
- Lancer un LLM local sans PC coûteux : guide du débutant pour utiliser un VPSPas de PC puissant ? Louez un VPS et faites tourner un petit LLM local depuis votre navigateur : six étapes, de l'estimation de la mémoire à un écran de discussion protégé, avec les limites indiquées honnêtement.