~/tools / Lokalny LLM na własnym serwerze / Ollama Log Reader

Ollama Log Reader — Czytaj log serwera Ollamy: pamięć, warstwy GPU, kontekst, szybkość, ostrzeżenia

Wklej log serwera Ollamy, z server.log, journalctl lub docker logs, a narzędzie wybierze to, co ważne: ile pamięci zajęło każde załadowanie modelu i gdzie (wagi, KV cache, bufory obliczeniowe, osobno dla CPU i GPU), ile warstw trafiło na GPU, długość kontekstu, żądania i ich status, szybkość przetwarzania promptu i generowania oraz każde ostrzeżenie wraz z wyjaśnieniem. Pokazuje, kiedy prompt został przycięty, żeby zmieścić się w kontekście, kiedy model nie zmieścił się w pamięci i kiedy Ollama załadowała model ponownie. Nic nie opuszcza Twojej przeglądarki.

Gdzie znaleźć log

Ze strony Ollamy o rozwiązywaniu problemów. W systemie Windows najnowszym logiem jest server.log w tym folderze.

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

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

# Docker
docker logs <container-name>

# Windows
explorer %LOCALAPPDATA%\Ollama

Przeczytano 76 z 77 wierszy.

  • wiersz 23Kontekst ma 4096 tokenów, czyli mniej niż 32768, które model obsługuje. Dłuższe dane wejściowe wymagają większego num_ctx lub OLLAMA_CONTEXT_LENGTH oraz więcej pamięci na KV cache.
  • wiersz 43Kontekst ma 256 tokenów, czyli mniej niż 32768, które model obsługuje. Dłuższe dane wejściowe wymagają większego num_ctx lub OLLAMA_CONTEXT_LENGTH oraz więcej pamięci na KV cache.
  • wiersz 49Prompt miał 633 tokenów i nie zmieścił się w kontekście. Ollama zachowała pierwsze 4 tokenów i koniec promptu, a resztę usunęła, zostawiając 130 tokenów. Zwiększ num_ctx, skróć prompt albo wyślij truncate ustawione na false, żeby zamiast tego dostać błąd.
  • wiersz 53Żądanie z 633 tokenami nie zmieściło się w kontekście o długości 256 tokenów i zostało odrzucone (tak się dzieje, gdy truncate ma wartość false). Zwiększ num_ctx lub skróć dane wejściowe.
  • wiersz 55Ollama zatrzymała llama-server i od razu uruchomiła go ponownie, żeby załadować model z innymi ustawieniami, na przykład innym num_ctx. To nie jest awaria.
  • wiersz 58num_ctx 65536 jest dłuższy niż kontekst, na jaki model był trenowany, więc Ollama użyła 32768.
  • Nieudane żądania: 400 POST /api/chat, 404 POST /api/chat

Serwer

Wersja
0.40.11
Adres
[::]:11434
Urządzenia
cpu cpu (1.9 GiB / 1.9 GiB)
Domyślna długość kontekstu
4096

Ustawienia (zmienne środowiskowe)

OLLAMA_HOST
http://0.0.0.0:11434
OLLAMA_CONTEXT_LENGTH
0 (0 = domyślnie)
OLLAMA_NUM_PARALLEL
1
OLLAMA_MAX_LOADED_MODELS
0 (0 = domyślnie)
OLLAMA_KEEP_ALIVE
5m0s
OLLAMA_FLASH_ATTENTION
false

Załadowania modeli

Załadowanie 1 o 2026-11-07T08:32:08.625Z wiersz 14

Model
Qwen2.5 0.5B Instruct · Q4_K - Medium · 373.71 MiB (6.35 BPW) · sha256-c5396e06af29
Długość kontekstu
4096 (trenowany na 32768)
Równoległe żądania
1
Wagi
512 MiB
KV cache
48.0 MiB (f16)
Bufory obliczeniowe
41.3 MiB
Razem
601 MiB
Według urządzenia
CPU 393 MiB, CPU_REPACK 208 MiB
Pamięć systemowa
1638 MiB wolne z 1946 MiB, swap 777 MiB wolny
Czas uruchamiania
1.27 s

Załadowanie 2 o 2026-11-07T08:32:10.384Z wiersz 34

Model
Qwen2.5 0.5B Instruct · Q4_K - Medium · 373.71 MiB (6.35 BPW) · sha256-c5396e06af29
Długość kontekstu
256 (trenowany na 32768)
Równoległe żądania
1
Wagi
512 MiB
KV cache
3.0 MiB (f16)
Bufory obliczeniowe
18.8 MiB
Razem
533 MiB
Według urządzenia
CPU 325 MiB, CPU_REPACK 208 MiB
Pamięć systemowa
1638 MiB wolne z 1946 MiB, swap 763 MiB wolny
Czas uruchamiania
1.02 s

Załadowanie 3 o 2026-11-07T08:32:12.223Z wiersz 59

Model
Qwen2.5 0.5B Instruct · Q4_K - Medium · 373.71 MiB (6.35 BPW) · sha256-c5396e06af29
Długość kontekstu
32768 (trenowany na 32768)
Równoległe żądania
1
Wagi
512 MiB
KV cache
384 MiB (f16)
Bufory obliczeniowe
139 MiB
Razem
1034 MiB
Według urządzenia
CPU 826 MiB, CPU_REPACK 208 MiB
Pamięć systemowa
1638 MiB wolne z 1946 MiB, swap 764 MiB wolny
Czas uruchamiania
1.02 s

Szybkość podana przez llama-server

Przetworzone tokeny promptuSzybkość promptuWygenerowane tokenySzybkość generowania
35217.5 tokenów/s759.9 tokenów/s
130227.3 tokenów/s1194.8 tokenów/s
30202.7 tokenów/s562.7 tokenów/s

Żądania

CzasStatusCzas trwaniaŻądanie
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

Gdy prompt się nie mieści, Ollama przycina go do num_ctx − max((num_ctx − num_keep) ÷ 2, 1) tokenów: mniej więcej połowy kontekstu, tak by zostało miejsce na odpowiedź. Tokeny promptu w tabeli szybkości liczą tylko te tokeny, których nie było w cache.

llama-server nie liczy pierwszego wygenerowanego tokenu przy obliczaniu szybkości generowania, więc jego wartość jest nieco niższa niż eval_count podzielone przez eval_duration w odpowiedzi API.

Format logu zmienia się z wydania na wydanie. Narzędzie opiera się na Ollamie v0.40.15 i wersji llama.cpp, której ona używa, a nieznane wiersze pomija.

Komunikaty z kodu źródłowego Ollamy (v0.40.15) i llama.cpp, sprawdzone na prawdziwych logach z Ollamy 0.40.11 na macOS i na Linuxie dnia 2026-11-07. Ollama: Troubleshooting

Wszystko dzieje się w Twojej przeglądarce. Narzędzie z niczym się nie łączy. Logi mogą zawierać ścieżki plików, adresy IP i nazwy modeli.

Gdy Ollama działa wolno, odpowiedzi pomijają początek długiego promptu albo żądanie kończy się błędem 500, wyjaśnienie zwykle znajduje się w logu serwera. Log miesza własne wiersze Ollamy (time=… level=… msg=…), po jednym wierszu na każde żądanie HTTP ([GIN] …) oraz wyjście llama-server, programu llama.cpp, którym Ollama ładuje każdy model GGUF. To narzędzie czyta wszystkie trzy. Dla każdego załadowania modelu pokazuje długość kontekstu (-c), liczbę równoległych żądań (-np), typ i rozmiar pliku modelu, długość kontekstu, na jaką model był trenowany, ile warstw przeniesiono na GPU oraz pamięć na wagi, KV cache i bufory obliczeniowe, osobno dla każdego urządzenia. Wypisuje też żądania wraz ze statusem i czasem trwania oraz szybkość przetwarzania promptu i generowania, którą llama-server wypisuje po każdym żądaniu. Następnie wyjaśnia, co poszło nie tak, na podstawie komunikatów z kodu źródłowego Ollamy (v0.40.15). Gdy prompt nie mieści się w kontekście, Ollama zachowuje pierwsze num_keep tokenów i koniec promptu, a to, co jest pomiędzy, usuwa, aż prompt zajmie mniej więcej połowę kontekstu: w naszym teście prompt o długości 633 tokenów przy num_ctx 256 został przycięty do 130 tokenów. Przy truncate ustawionym na false to samo żądanie zostało odrzucone z błędem 400. Wartość num_ctx większa od długości, na jaką model był trenowany, jest obniżana do tej długości. Gdy model nie mieści się w pamięci, ładowanie kończy się niepowodzeniem: w naszym teście na Linuxie z 1.9 GiB pamięci i bez GPU qwen2.5:7b potrzebował na wagi 4,460 MiB, llama-server został zatrzymany z signal: killed, a żądanie zwróciło 500. Wiersz mówiący, że llama-server zakończył działanie, po którym od razu następuje nowy start, oznacza, że Ollama ładowała model ponownie z innymi ustawieniami, a nie że uległa awarii. Format logu zmienia się z wydania na wydanie; narzędzie czyta znane sobie wiersze i pomija resztę. Sprawdziliśmy je na prawdziwych logach z Ollamy 0.40.11 na macOS (Apple M1) oraz na Linuxie w Dockerze, bez GPU.

Główna logika tego narzędzia jest otwartoźródłowa, na licencji MIT. github.com/seigo5555/toolkitbox-lib/src/ollama-log.ts

Zastosowania

  • Ustalić, dlaczego długi prompt wydaje się ignorowany albo dlaczego żądanie zakończyło się błędem 400 lub 500
  • Zobaczyć, ile pamięci model naprawdę zajął i czy działał na GPU, CPU czy na obu
  • Sprawdzić, jakiej długości kontekstu i jakich ustawień użył serwer, zanim kupisz większy VPS

Jak używać

  1. Weź log: cat ~/.ollama/logs/server.log na macOS, journalctl -u ollama --no-pager na Linuxie albo docker logs z nazwą kontenera.
  2. Wklej go. Wiersze zaczynające się od znacznika czasu z journalctl lub docker też są czytane.
  3. Przeczytaj najpierw ostrzeżenia, potem załadowania modeli, szybkość i żądania.

FAQ

Dlaczego mój model ignoruje początek długiego promptu?

Jeśli w logu jest wiersz „truncating input prompt”, prompt nie zmieścił się w kontekście. Ollama zachowała pierwsze num_keep tokenów i koniec, a środek usunęła, aż prompt zajął mniej więcej połowę kontekstu. Zwiększ num_ctx (lub OLLAMA_CONTEXT_LENGTH), skróć prompt albo wyślij truncate ustawione na false, żeby Ollama zwróciła błąd zamiast przycinać.

Co oznacza „signal: killed”?

llama-server został zatrzymany z zewnątrz. W naszym teście na Linuxie stało się to podczas ładowania modelu, który nie mieścił się w pamięci, a żądanie zwróciło 500. Jeśli w ciągu dwóch sekund pojawi się nowy wiersz „starting llama-server”, Ollama sama zatrzymała stary proces, żeby załadować model ponownie z innymi ustawieniami.

Dlaczego szybkość generowania w logu jest niższa niż eval_count podzielone przez eval_duration?

llama-server nie liczy pierwszego wygenerowanego tokenu, bo pochodzi on z ostatniego kroku przetwarzania promptu, więc dzieli przez o jeden token mniej. W naszym teście 7 tokenów w 675.82 ms zostało podanych jako 8.88 tokenu na sekundę, podczas gdy 7 podzielone przez ten sam czas daje 10.4.

Jak sprawdzić, czy model działał na GPU?

Spójrz na „Warstwy na GPU” przy załadowaniu modelu. Wszystkie warstwy na GPU oznaczają, że model działał tam w całości; część warstw oznacza, że reszta działała na CPU. Gdy model jest załadowany, ollama ps pokazuje ten sam podział w kolumnie PROCESSOR.

Dlaczego niektóre wiersze nie są czytane?

Narzędzie czyta własne wiersze Ollamy, wiersze żądań i te wiersze llama-server, które dotyczą pamięci, kontekstu i szybkości. Inne wiersze, na przykład lista metadanych modelu, są pomijane. Format zmienia się między wydaniami, więc wiersze ze znacznie starszej lub nowszej wersji mogą nie zostać rozpoznane.

Czy mój log jest dokądś wysyłany?

Nie. Log jest czytany w Twojej przeglądarce. Logi mogą zawierać ścieżki plików, adresy IP i nazwy Twoich modeli, więc uważaj, gdzie jeszcze je wklejasz.

Powiązane artykuły

Powiązane