~/tools / Chạy LLM cục bộ trên máy chủ của bạn / Ollama Log Reader

Ollama Log Reader — Đọc log máy chủ Ollama: bộ nhớ, lớp trên GPU, ngữ cảnh, tốc độ, cảnh báo

Dán log máy chủ của Ollama, từ server.log, journalctl hoặc docker logs, và công cụ sẽ chọn ra những gì quan trọng: mỗi lần tải mô hình tốn bao nhiêu bộ nhớ và ở đâu (trọng số, KV cache, bộ đệm tính toán, theo từng CPU hoặc GPU), bao nhiêu lớp được đưa lên GPU, độ dài ngữ cảnh, các yêu cầu và trạng thái của chúng, tốc độ xử lý prompt và tốc độ sinh, cùng mọi cảnh báo kèm giải thích. Nó cho biết khi nào prompt bị cắt cho vừa ngữ cảnh, khi nào mô hình không vừa bộ nhớ, và khi nào Ollama tải lại một mô hình. Không có gì rời khỏi trình duyệt của bạn.

Tìm log ở đâu

Theo trang khắc phục sự cố của Ollama. Trên Windows, log mới nhất là server.log trong thư mục đó.

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

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

# Docker
docker logs <container-name>

# Windows
explorer %LOCALAPPDATA%\Ollama

Đã đọc 76 trong 77 dòng.

  • dòng 23Ngữ cảnh là 4096 token, ngắn hơn 32768 mà mô hình hỗ trợ. Đầu vào dài hơn cần num_ctx hoặc OLLAMA_CONTEXT_LENGTH lớn hơn, và nhiều bộ nhớ hơn cho KV cache.
  • dòng 43Ngữ cảnh là 256 token, ngắn hơn 32768 mà mô hình hỗ trợ. Đầu vào dài hơn cần num_ctx hoặc OLLAMA_CONTEXT_LENGTH lớn hơn, và nhiều bộ nhớ hơn cho KV cache.
  • dòng 49Prompt có 633 token và không vừa ngữ cảnh. Ollama giữ 4 token đầu và phần cuối của prompt, bỏ phần còn lại, còn 130 token. Hãy tăng num_ctx, rút ngắn prompt, hoặc gửi truncate đặt là false để nhận lỗi thay vào đó.
  • dòng 53Một yêu cầu 633 token không vừa ngữ cảnh 256 token và bị từ chối (điều này xảy ra khi truncate là false). Hãy tăng num_ctx hoặc rút ngắn đầu vào.
  • dòng 55Ollama đã dừng llama-server và khởi động lại ngay để tải mô hình với các thiết lập khác, ví dụ một num_ctx khác. Đây không phải là sự cố treo.
  • dòng 58num_ctx 65536 dài hơn ngữ cảnh mà mô hình được huấn luyện, nên Ollama đã dùng 32768.
  • Các yêu cầu thất bại: 400 POST /api/chat, 404 POST /api/chat

Máy chủ

Phiên bản
0.40.11
Địa chỉ
[::]:11434
Thiết bị
cpu cpu (1.9 GiB / 1.9 GiB)
Độ dài ngữ cảnh mặc định
4096

Thiết lập (biến môi trường)

OLLAMA_HOST
http://0.0.0.0:11434
OLLAMA_CONTEXT_LENGTH
0 (0 = mặc định)
OLLAMA_NUM_PARALLEL
1
OLLAMA_MAX_LOADED_MODELS
0 (0 = mặc định)
OLLAMA_KEEP_ALIVE
5m0s
OLLAMA_FLASH_ATTENTION
false

Các lần tải mô hình

Lần tải 1 lúc 2026-11-07T08:32:08.625Z dòng 14

Mô hình
Qwen2.5 0.5B Instruct · Q4_K - Medium · 373.71 MiB (6.35 BPW) · sha256-c5396e06af29
Độ dài ngữ cảnh
4096 (huấn luyện với 32768)
Yêu cầu song song
1
Trọng số
512 MiB
KV cache
48.0 MiB (f16)
Bộ đệm tính toán
41.3 MiB
Tổng
601 MiB
Theo thiết bị
CPU 393 MiB, CPU_REPACK 208 MiB
Bộ nhớ hệ thống
Trống 1638 MiB trên 1946 MiB, swap trống 777 MiB
Thời gian khởi động
1.27 giây

Lần tải 2 lúc 2026-11-07T08:32:10.384Z dòng 34

Mô hình
Qwen2.5 0.5B Instruct · Q4_K - Medium · 373.71 MiB (6.35 BPW) · sha256-c5396e06af29
Độ dài ngữ cảnh
256 (huấn luyện với 32768)
Yêu cầu song song
1
Trọng số
512 MiB
KV cache
3.0 MiB (f16)
Bộ đệm tính toán
18.8 MiB
Tổng
533 MiB
Theo thiết bị
CPU 325 MiB, CPU_REPACK 208 MiB
Bộ nhớ hệ thống
Trống 1638 MiB trên 1946 MiB, swap trống 763 MiB
Thời gian khởi động
1.02 giây

Lần tải 3 lúc 2026-11-07T08:32:12.223Z dòng 59

Mô hình
Qwen2.5 0.5B Instruct · Q4_K - Medium · 373.71 MiB (6.35 BPW) · sha256-c5396e06af29
Độ dài ngữ cảnh
32768 (huấn luyện với 32768)
Yêu cầu song song
1
Trọng số
512 MiB
KV cache
384 MiB (f16)
Bộ đệm tính toán
139 MiB
Tổng
1034 MiB
Theo thiết bị
CPU 826 MiB, CPU_REPACK 208 MiB
Bộ nhớ hệ thống
Trống 1638 MiB trên 1946 MiB, swap trống 764 MiB
Thời gian khởi động
1.02 giây

Tốc độ do llama-server báo cáo

Token prompt đã xử lýTốc độ promptToken đã sinhTốc độ sinh
35217.5 token/giây759.9 token/giây
130227.3 token/giây1194.8 token/giây
30202.7 token/giây562.7 token/giây

Các yêu cầu

Thời gianTrạng tháiThời lượngYêu cầu
2026/11/07 - 08:31:422000.007 giâyGET /api/version
2026/11/07 - 08:32:0020017.49 giâyPOST /api/pull
2026/11/07 - 08:32:002000.040 giâyGET /api/tags
2026/11/07 - 08:32:102001.62 giâyPOST /api/chat
2026/11/07 - 08:32:122001.89 giâyPOST /api/chat
2026/11/07 - 08:32:124000.005 giâyPOST /api/chat
2026/11/07 - 08:32:132001.31 giâyPOST /api/chat
2026/11/07 - 08:32:134040.002 giâyPOST /api/chat

Khi một prompt không vừa, Ollama cắt nó còn num_ctx − max((num_ctx − num_keep) ÷ 2, 1) token: khoảng một nửa ngữ cảnh, để còn chỗ cho câu trả lời. Các token prompt trong bảng tốc độ chỉ tính những token không có trong cache.

llama-server không đếm token đầu tiên được sinh ra khi tính tốc độ sinh, nên giá trị của nó thấp hơn một chút so với eval_count chia cho eval_duration trong phản hồi API.

Định dạng log thay đổi giữa các bản phát hành. Công cụ này theo Ollama v0.40.15 và bản dựng llama.cpp mà nó dùng, và bỏ qua những dòng nó không biết.

Các thông điệp lấy từ mã nguồn của Ollama (v0.40.15) và llama.cpp, được kiểm tra với log thật của Ollama 0.40.11 trên macOS và trên Linux vào 2026-11-07. Ollama: Troubleshooting

Mọi thứ được xử lý trong trình duyệt của bạn. Công cụ không kết nối tới đâu cả. Log có thể chứa đường dẫn tệp, địa chỉ IP và tên mô hình.

Khi Ollama chạy chậm, câu trả lời bỏ qua phần đầu của một prompt dài, hoặc một yêu cầu thất bại với lỗi 500, lời giải thích thường nằm trong log máy chủ. Log trộn lẫn các dòng của chính Ollama (time=… level=… msg=…), một dòng cho mỗi yêu cầu HTTP ([GIN] …), và đầu ra của llama-server, chương trình llama.cpp mà Ollama chạy để tải từng mô hình GGUF. Công cụ này đọc cả ba loại. Với mỗi lần tải mô hình, nó hiển thị độ dài ngữ cảnh (-c), số yêu cầu song song (-np), loại tệp và dung lượng của mô hình, độ dài ngữ cảnh mà nó được huấn luyện, bao nhiêu lớp đã được chuyển sang GPU, và bộ nhớ dành cho trọng số, KV cache và bộ đệm tính toán, theo từng thiết bị. Nó cũng liệt kê các yêu cầu cùng trạng thái và thời lượng, cùng tốc độ xử lý prompt và tốc độ sinh mà llama-server in ra sau mỗi yêu cầu. Sau đó nó giải thích điều gì đã xảy ra, dựa trên các thông điệp trong mã nguồn của Ollama (v0.40.15). Khi một prompt không vừa ngữ cảnh, Ollama giữ num_keep token đầu và phần cuối của prompt, bỏ phần ở giữa, cho đến khi prompt chiếm khoảng một nửa ngữ cảnh: trong thử nghiệm của chúng tôi, một prompt 633 token với num_ctx 256 bị cắt còn 130 token. Với truncate đặt là false, cùng yêu cầu đó bị từ chối với lỗi 400. Một num_ctx lớn hơn độ dài mà mô hình được huấn luyện sẽ bị hạ xuống bằng độ dài đó. Khi một mô hình không vừa bộ nhớ, việc tải thất bại: trong thử nghiệm của chúng tôi trên Linux với 1.9 GiB bộ nhớ và không có GPU, qwen2.5:7b cần 4,460 MiB chỉ cho trọng số, llama-server bị dừng với signal: killed, và yêu cầu trả về 500. Một dòng cho biết llama-server đã kết thúc, theo sau ngay bởi một lần khởi động mới, nghĩa là Ollama đang tải lại mô hình với các thiết lập khác, chứ không phải bị treo. Định dạng của log thay đổi giữa các bản phát hành; công cụ đọc những dòng nó biết và bỏ qua phần còn lại. Chúng tôi đã kiểm tra nó với log thật của Ollama 0.40.11 trên macOS (Apple M1) và trên Linux trong Docker, không có GPU.

Phần xử lý chính của công cụ này là mã nguồn mở theo giấy phép MIT. github.com/seigo5555/toolkitbox-lib/src/ollama-log.ts

Trường hợp dùng

  • Tìm hiểu vì sao một prompt dài dường như bị bỏ qua, hoặc vì sao một yêu cầu thất bại với 400 hay 500
  • Xem một mô hình thực sự đã dùng bao nhiêu bộ nhớ, và nó chạy trên GPU, CPU hay cả hai
  • Kiểm tra máy chủ đã dùng độ dài ngữ cảnh và thiết lập nào, trước khi bạn mua một VPS lớn hơn

Cách dùng

  1. Lấy log: cat ~/.ollama/logs/server.log trên macOS, journalctl -u ollama --no-pager trên Linux, hoặc docker logs kèm tên container.
  2. Dán nó vào. Các dòng bắt đầu bằng dấu thời gian của journalctl hoặc docker cũng được đọc.
  3. Đọc các cảnh báo trước, rồi đến các lần tải mô hình, tốc độ và các yêu cầu.

Hỏi đáp

Vì sao mô hình của tôi bỏ qua phần đầu của một prompt dài?

Nếu log có dòng "truncating input prompt", prompt đã không vừa ngữ cảnh. Ollama giữ num_keep token đầu và phần cuối, bỏ phần giữa, cho đến khi prompt chiếm khoảng một nửa ngữ cảnh. Hãy tăng num_ctx (hoặc OLLAMA_CONTEXT_LENGTH), rút ngắn prompt, hoặc gửi truncate đặt là false, để Ollama trả về lỗi thay vì cắt.

"signal: killed" nghĩa là gì?

llama-server đã bị dừng từ bên ngoài. Trong thử nghiệm của chúng tôi trên Linux, điều này xảy ra khi một mô hình không vừa bộ nhớ đang được tải, và yêu cầu trả về 500. Nếu một dòng "starting llama-server" mới theo sau trong vòng hai giây, Ollama đã tự dừng tiến trình cũ để tải lại mô hình với các thiết lập khác.

Vì sao tốc độ sinh trong log thấp hơn eval_count chia cho eval_duration?

llama-server không đếm token đầu tiên được sinh ra, vì nó đến từ bước cuối của việc xử lý prompt, nên nó chia cho ít hơn một token. Trong thử nghiệm của chúng tôi, 7 token trong 675.82 ms được báo là 8.88 token mỗi giây, trong khi 7 chia cho cùng thời gian đó cho ra 10.4.

Làm sao để biết mô hình có chạy trên GPU không?

Hãy xem "Số lớp trên GPU" của lần tải mô hình. Tất cả các lớp trên GPU nghĩa là mô hình chạy hoàn toàn ở đó; một số lớp nghĩa là phần còn lại chạy trên CPU. Trong khi mô hình đang được tải, ollama ps hiển thị cùng cách chia đó ở cột PROCESSOR.

Vì sao một số dòng không được đọc?

Công cụ đọc các dòng của chính Ollama, các dòng yêu cầu và các dòng của llama-server quan trọng đối với bộ nhớ, ngữ cảnh và tốc độ. Các dòng khác, như danh sách siêu dữ liệu của mô hình, bị bỏ qua. Định dạng thay đổi giữa các bản phát hành, nên các dòng từ phiên bản cũ hơn hoặc mới hơn nhiều có thể không được nhận ra.

Log của tôi có được gửi đi đâu không?

Không. Log được đọc ngay trong trình duyệt của bạn. Log có thể chứa đường dẫn tệp, địa chỉ IP và tên các mô hình của bạn, vì vậy hãy cẩn thận khi dán chúng vào nơi khác.

Bài viết liên quan

Liên quan