~/tools / Локальная LLM на своём сервере / Ollama Log Reader
Ollama Log Reader — Чтение лога Ollama: память, слои GPU, контекст, скорость, предупреждения
Вставьте лог сервера Ollama из server.log, journalctl или docker logs, и инструмент выберет главное: сколько памяти заняла каждая загрузка модели и где (веса, кэш KV, вычислительные буферы, отдельно для CPU и GPU), сколько слоёв попало на GPU, длину контекста, запросы и их статус, скорость обработки промпта и генерации и каждое предупреждение с объяснением. Он показывает, когда промпт был обрезан, чтобы поместиться в контекст, когда модель не поместилась в память и когда Ollama загрузила модель заново. Ничего не покидает ваш браузер.
Где найти лог
Со страницы Ollama об устранении неполадок. В Windows самый новый лог — это server.log в этой папке.
# macOS cat ~/.ollama/logs/server.log # Linux (systemd) journalctl -u ollama --no-pager # Docker docker logs <container-name> # Windows explorer %LOCALAPPDATA%\Ollama
Прочитано 76 из 77 строк.
- строка 23Контекст составляет 4096 токенов, меньше, чем 32768, которые поддерживает модель. Для более длинных входных данных нужен больший num_ctx или OLLAMA_CONTEXT_LENGTH и больше памяти под кэш KV.
- строка 43Контекст составляет 256 токенов, меньше, чем 32768, которые поддерживает модель. Для более длинных входных данных нужен больший num_ctx или OLLAMA_CONTEXT_LENGTH и больше памяти под кэш KV.
- строка 49В промпте было 633 токенов, и он не поместился в контекст. Ollama оставила первые 4 токенов и конец промпта, а остальное отбросила, и осталось 130 токенов. Увеличьте num_ctx, сократите промпт или отправьте truncate, равный false, чтобы вместо этого получить ошибку.
- строка 53Запрос из 633 токенов не поместился в контекст из 256 токенов и был отклонён (так бывает, когда truncate равен false). Увеличьте num_ctx или сократите входные данные.
- строка 55Ollama остановила llama-server и сразу запустила его снова, чтобы загрузить модель с другими настройками, например с другим num_ctx. Это не сбой.
- строка 58num_ctx 65536 больше контекста, на который обучалась модель, поэтому Ollama использовала 32768.
- Неудачные запросы: 400 POST /api/chat, 404 POST /api/chat
Сервер
- Версия
- 0.40.11
- Адрес
- [::]:11434
- Устройства
- cpu cpu (1.9 GiB / 1.9 GiB)
- Длина контекста по умолчанию
- 4096
Настройки (переменные окружения)
- OLLAMA_HOST
- http://0.0.0.0:11434
- OLLAMA_CONTEXT_LENGTH
- 0 (0 = по умолчанию)
- OLLAMA_NUM_PARALLEL
- 1
- OLLAMA_MAX_LOADED_MODELS
- 0 (0 = по умолчанию)
- OLLAMA_KEEP_ALIVE
- 5m0s
- OLLAMA_FLASH_ATTENTION
- false
Загрузки моделей
Загрузка 1 в 2026-11-07T08:32:08.625Z строка 14
- Модель
- Qwen2.5 0.5B Instruct · Q4_K - Medium · 373.71 MiB (6.35 BPW) · sha256-c5396e06af29
- Длина контекста
- 4096 (обучена на 32768)
- Параллельные запросы
- 1
- Веса
- 512 MiB
- Кэш KV
- 48.0 MiB (f16)
- Вычислительные буферы
- 41.3 MiB
- Всего
- 601 MiB
- По устройствам
- CPU 393 MiB, CPU_REPACK 208 MiB
- Системная память
- свободно 1638 MiB из 1946 MiB, свободно в swap 777 MiB
- Время запуска
- 1.27 с
Загрузка 2 в 2026-11-07T08:32:10.384Z строка 34
- Модель
- Qwen2.5 0.5B Instruct · Q4_K - Medium · 373.71 MiB (6.35 BPW) · sha256-c5396e06af29
- Длина контекста
- 256 (обучена на 32768)
- Параллельные запросы
- 1
- Веса
- 512 MiB
- Кэш KV
- 3.0 MiB (f16)
- Вычислительные буферы
- 18.8 MiB
- Всего
- 533 MiB
- По устройствам
- CPU 325 MiB, CPU_REPACK 208 MiB
- Системная память
- свободно 1638 MiB из 1946 MiB, свободно в swap 763 MiB
- Время запуска
- 1.02 с
Загрузка 3 в 2026-11-07T08:32:12.223Z строка 59
- Модель
- Qwen2.5 0.5B Instruct · Q4_K - Medium · 373.71 MiB (6.35 BPW) · sha256-c5396e06af29
- Длина контекста
- 32768 (обучена на 32768)
- Параллельные запросы
- 1
- Веса
- 512 MiB
- Кэш KV
- 384 MiB (f16)
- Вычислительные буферы
- 139 MiB
- Всего
- 1034 MiB
- По устройствам
- CPU 826 MiB, CPU_REPACK 208 MiB
- Системная память
- свободно 1638 MiB из 1946 MiB, свободно в swap 764 MiB
- Время запуска
- 1.02 с
Скорость по данным llama-server
| Обработано токенов промпта | Скорость промпта | Сгенерировано токенов | Скорость генерации |
|---|---|---|---|
| 35 | 217.5 токенов/с | 7 | 59.9 токенов/с |
| 130 | 227.3 токенов/с | 11 | 94.8 токенов/с |
| 30 | 202.7 токенов/с | 5 | 62.7 токенов/с |
Запросы
| Время | Статус | Длительность | Запрос |
|---|---|---|---|
| 2026/11/07 - 08:31:42 | 200 | 0.007 с | GET /api/version |
| 2026/11/07 - 08:32:00 | 200 | 17.49 с | POST /api/pull |
| 2026/11/07 - 08:32:00 | 200 | 0.040 с | GET /api/tags |
| 2026/11/07 - 08:32:10 | 200 | 1.62 с | POST /api/chat |
| 2026/11/07 - 08:32:12 | 200 | 1.89 с | POST /api/chat |
| 2026/11/07 - 08:32:12 | 400 | 0.005 с | POST /api/chat |
| 2026/11/07 - 08:32:13 | 200 | 1.31 с | POST /api/chat |
| 2026/11/07 - 08:32:13 | 404 | 0.002 с | POST /api/chat |
Когда промпт не помещается, Ollama обрезает его до num_ctx − max((num_ctx − num_keep) ÷ 2, 1) токенов: около половины контекста, чтобы осталось место для ответа. Токены промпта в таблице скорости учитывают только те токены, которых не было в кэше.
llama-server не считает первый сгенерированный токен при вычислении скорости генерации, поэтому его значение немного ниже, чем eval_count, делённое на eval_duration в ответе API.
Формат лога меняется от выпуска к выпуску. Инструмент следует Ollama v0.40.15 и сборке llama.cpp, которую она использует, и пропускает неизвестные строки.
Сообщения из исходного кода Ollama (v0.40.15) и llama.cpp, проверены на настоящих логах Ollama 0.40.11 на macOS и на Linux 2026-11-07. Ollama: Troubleshooting
Всё происходит в вашем браузере. Инструмент ни к чему не подключается. Логи могут содержать пути к файлам, IP-адреса и названия моделей.
Когда Ollama работает медленно, ответы игнорируют начало длинного промпта или запрос завершается ошибкой 500, объяснение обычно есть в логе сервера. В логе перемешаны собственные строки Ollama (time=… level=… msg=…), по одной строке на каждый HTTP-запрос ([GIN] …) и вывод llama-server, программы llama.cpp, которой Ollama загружает каждую модель GGUF. Этот инструмент читает все три. Для каждой загрузки модели он показывает длину контекста (-c), число параллельных запросов (-np), тип и размер файла модели, длину контекста, на которую модель обучалась, сколько слоёв выгружено на GPU, а также память под веса, кэш KV и вычислительные буферы по устройствам. Он также перечисляет запросы со статусом и длительностью и скорость обработки промпта и генерации, которую llama-server выводит после каждого запроса. Затем он объясняет, что пошло не так, опираясь на сообщения из исходного кода Ollama (v0.40.15). Когда промпт не помещается в контекст, Ollama оставляет первые num_keep токенов и конец промпта, а то, что между ними, отбрасывает, пока промпт не займёт около половины контекста: в нашем тесте промпт из 633 токенов при num_ctx 256 был обрезан до 130 токенов. При truncate, равном false, тот же запрос был отклонён с ошибкой 400. Значение num_ctx больше длины, на которую обучалась модель, снижается до этой длины. Когда модель не помещается в память, загрузка завершается неудачей: в нашем тесте на Linux с 1.9 GiB памяти и без GPU qwen2.5:7b потребовалось на веса 4,460 MiB, llama-server был остановлен с signal: killed, а запрос вернул 500. Строка о том, что llama-server завершился, за которой сразу следует новый запуск, означает, что Ollama загружала модель заново с другими настройками, а не что она упала. Формат лога меняется от выпуска к выпуску; инструмент читает известные ему строки и пропускает остальные. Мы проверили его на настоящих логах Ollama 0.40.11 на macOS (Apple M1) и на Linux в Docker без GPU.
Основная логика этого инструмента открыта под лицензией MIT. github.com/seigo5555/toolkitbox-lib/src/ollama-log.ts
Когда пригодится
- Выяснить, почему длинный промпт как будто игнорируется или почему запрос завершился ошибкой 400 или 500
- Увидеть, сколько памяти модель использовала на самом деле и работала ли она на GPU, CPU или на обоих
- Проверить, какую длину контекста и какие настройки использовал сервер, прежде чем покупать VPS побольше
Как пользоваться
- Получите лог: cat ~/.ollama/logs/server.log на macOS, journalctl -u ollama --no-pager на Linux или docker logs с именем контейнера.
- Вставьте его. Строки, начинающиеся с метки времени journalctl или docker, тоже читаются.
- Сначала прочитайте предупреждения, затем загрузки моделей, скорость и запросы.
Вопросы
Почему моя модель игнорирует начало длинного промпта?
Если в логе есть строка «truncating input prompt», промпт не поместился в контекст. Ollama оставила первые num_keep токенов и конец, а середину отбросила, пока промпт не занял около половины контекста. Увеличьте num_ctx (или OLLAMA_CONTEXT_LENGTH), сократите промпт или отправьте truncate, равный false, чтобы Ollama вернула ошибку вместо обрезки.
Что значит «signal: killed»?
llama-server был остановлен извне. В нашем тесте на Linux это случилось во время загрузки модели, которая не помещалась в память, и запрос вернул 500. Если в течение двух секунд следует новая строка «starting llama-server», Ollama сама остановила старый процесс, чтобы загрузить модель заново с другими настройками.
Почему скорость генерации в логе ниже, чем eval_count, делённое на eval_duration?
llama-server не считает первый сгенерированный токен, потому что он получается на последнем шаге обработки промпта, и делит на один токен меньше. В нашем тесте 7 токенов за 675.82 ms были показаны как 8.88 токена в секунду, тогда как 7, делённое на то же время, даёт 10.4.
Как увидеть, работала ли модель на GPU?
Посмотрите «Слои на GPU» у загрузки модели. Все слои на GPU означают, что модель работала там целиком; часть слоёв означает, что остальное работало на CPU. Пока модель загружена, ollama ps показывает то же распределение в столбце PROCESSOR.
Почему некоторые строки не читаются?
Инструмент читает собственные строки Ollama, строки запросов и те строки llama-server, которые важны для памяти, контекста и скорости. Другие строки, например список метаданных модели, пропускаются. Формат меняется между выпусками, поэтому строки из гораздо более старой или новой версии могут не распознаваться.
Отправляется ли мой лог куда-нибудь?
Нет. Лог читается в вашем браузере. Логи могут содержать пути к файлам, IP-адреса и названия ваших моделей, поэтому будьте осторожны, куда ещё вы их вставляете.
Похожие статьи
- Следим за памятью Ollama на небольшом VPSЧто Ollama держит в памяти, как долго и какие настройки это меняют: ollama ps, keep_alive и лимиты по официальному FAQ.
- Подключаем Dify к Ollama на собственном VPSЗапустите Dify на своём VPS и используйте Ollama как модель: установка, поля плагина, проблема адреса в Docker и эмбеддинги — по официальной документации.
- Локальная LLM без дорогого ПК: руководство для начинающих по работе через VPSНет мощного ПК? Арендуйте VPS и запустите небольшую локальную LLM из браузера: шесть шагов от оценки памяти до защищённого экрана чата, с честным описанием ограничений.