VPS

Vận hành Ollama trên server: systemd, log, benchmark

Thanh Nguyễn Cập nhật Đăng 9 phút đọc 6 khối lệnh

Vận hành Ollama trên server: systemd, log, benchmark
Mục lục bài viết
  1. Cấu hình chuẩn qua systemd
  2. Đọc log khi có biến
  3. Benchmark tử tế: eval rate và cách đo đúng
  4. Phục vụ nhiều người: hai van cần hiểu
  5. Update, dọn dẹp và checklist tuần
  6. Danh sách kiểm sức khỏe hằng tuần, năm phút
  7. Cập nhật an toàn, không làm ai đứng hình
  8. Phục vụ nhiều người: hai van và cách chọn số
  9. Giám sát tự động, ba dòng
  10. Câu hỏi thường gặp
  11. Bài viết liên quan

Trả lời nhanh: Bộ đồ nghề vận hành: cấu hình qua systemctl edit ollama (biến OLLAMA_HOST, KEEP_ALIVE, NUM_PARALLEL...), log đọc bằng journalctl -u ollama, đo tốc độ bằng ollama run ten-model --verbose nhìn dòng eval rate (tokens/giây), update bằng chạy lại script cài. Chuẩn tốc độ dùng được cho chat: từ ~10 tokens/giây trở lên.

Từ nghịch thử sang chạy thật là một cú chuyển nghề: Ollama giờ là dịch vụ có người dùng chờ ở đầu kia, cần khởi động cùng máy, có log để lần lỗi, có số đo để biết nhanh chậm, và có quy trình update không làm ai đứng hình. Bài chốt series này gom toàn bộ nghiệp vụ đó vào một trang, theo phong cách quen thuộc: lệnh dán được, số cụ thể.

Cấu hình chuẩn qua systemd

Gói cài Linux đã tạo dịch vụ ollama chạy cùng máy. Mọi tinh chỉnh nên nằm một chỗ:

TerminalCấu hình chuẩn qua systemdbash
sudo systemctl edit ollama# [Service]# Environment="OLLAMA_HOST=100.x.y.z:11434"   # nghe trong tailnet# Environment="OLLAMA_KEEP_ALIVE=1h"          # model nam lai RAM 1 gio# Environment="OLLAMA_NUM_PARALLEL=2"         # so yeu cau xu ly song song# Environment="OLLAMA_MAX_LOADED_MODELS=2"    # so model dong thoi trong RAM# Environment="OLLAMA_MODELS=/data/ollama"    # kho model sang o rieng (tuy chon)sudo systemctl daemon-reload && sudo systemctl restart ollamasystemctl status ollama

Ưu điểm của đường systemd: sống qua reboot, ai vào máy cũng thấy cấu hình ở một chỗ, và systemd-analyze cat-config không bao giờ nói dối, khác hẳn biến môi trường export trong shell rồi thất truyền.

Đọc log khi có biến

TerminalĐọc log khi có biếnbash
journalctl -u ollama -e          # log moi nhatjournalctl -u ollama -f          # theo doi truc tiepjournalctl -u ollama --since "1 hour ago" | grep -i error

Các dòng đáng để mắt: loading model kèm thời gian, nạp lâu bất thường là chuyện ổ đĩa; out of memory/dịch vụ tự restart, model quá cỡ RAM, xem lại bài RAM; chuỗi yêu cầu lạ từ địa chỉ không quen, cổng đang hở, quay lại bài bảo mật ngay. Ghép Ollama vào bộ giám sát chung của VPS (Netdata/Uptime Kuma) bằng phép thử HTTP đơn giản lên /api/tags.

Benchmark tử tế: eval rate và cách đo đúng

TerminalBenchmark tử tế: eval rate và cách đo đúngbash
ollama run qwen2.5:14b --verbose# hoi mot cau dai ~200 chu, nhin khoi thong ke cuoi:# prompt eval rate: toc do doc de bai (tokens/s)# eval rate:        toc do sinh chu, CON SO QUAN TRONG NHAT

Cách đo cho ra số tin được: đo sau khi model đã nạp (lượt hai trở đi), cùng một câu hỏi khi so hai máy/hai model, chạy 3 lần lấy trung bình. Khung đọc số cho CPU thuần: ≥10 tokens/s, chat mượt; 5-10, dùng được, hợp tóm tắt/batch; <5, chỉ hợp việc chạy nền không ai ngồi chờ. Đừng quên đo thời gian nạp model (lượt gọi đầu sau restart), chỉ số phơi bày chất lượng ổ đĩa: NVMe vài giây, ổ thường cả phút.

Phục vụ nhiều người: hai van cần hiểu

OLLAMA_NUM_PARALLEL, số yêu cầu một model xử cùng lúc: tăng giúp nhiều người không phải xếp hàng, nhưng chia sẻ cùng một CPU nên mỗi người chậm đi; đội 3-5 người đặt 2-3 là điểm cân trên CPU. OLLAMA_MAX_LOADED_MODELS, số model đồng thời trong RAM: đặt 2 khi chạy cặp chat + embeddings (RAG); mỗi model cộng đủ RAM của nó vào tổng. Quá hai van này mà vẫn nghẽn giờ cao điểm thì đến ngưỡng nâng cấp thật: thêm RAM/nhân CPU, thêm máy thứ hai chia tải, hoặc GPU, đúng thứ tự đó về chi phí.

Update, dọn dẹp và checklist tuần

Update: chạy lại curl -fsSL https://ollama.com/install.sh | sh: thay binary, giữ model và cấu hình, gián đoạn vài giây; đọc changelog trước trên các bản đổi lớn. Dọn kho: ollama list lộ các model tải nghịch rồi quên, mỗi con 5-20GB, ollama rm con không dùng. Checklist 5 phút mỗi tuần: free -h (RAM còn thở?), df -h đường kho model (đĩa còn chỗ?), journalctl -u ollama --since "7 days ago" | grep -ci error (đếm lỗi tuần), một lượt đo eval rate so với số chuẩn của máy, tụt hẳn là điều tra sớm trước khi người dùng kêu.

Danh sách kiểm sức khỏe hằng tuần, năm phút

TerminalDanh sách kiểm sức khỏe hằng tuần, năm phútbash
systemctl status ollama --no-pager | head -5      # dich vu con songjournalctl -u ollama --since "7 days ago" -p err --no-pager | tail -20   # loi trong tuanollama ps                                          # model dang nam trong RAMfree -h && df -h ~/.ollama                        # RAM va dung luong kho modelollama run qwen2.5:7b --verbose "xin chao" 2>&1 | grep -E "eval rate|total duration"
Chỉ sốNgưỡng chấp nhậnNếu vượt thì làm gì
Tốc độ sinh chữtừ 10 chữ mỗi giây trở lên cho trò chuyệnChọn model nhỏ hơn, hoặc thêm card đồ họa
Dung lượng kho modeldưới 70% ổollama rm các model không dùng
Bộ nhớ còn trốngcòn ít nhất 2 GB sau khi nạp modelGiảm OLLAMA_MAX_LOADED_MODELS
Số lỗi trong nhật ký tuần0Đọc dòng lỗi đầu tiên, thường là hết bộ nhớ hoặc hết dung lượng
Thời gian phản hồi lượt đầudưới 3 giâyTăng OLLAMA_KEEP_ALIVE

Cập nhật an toàn, không làm ai đứng hình

TerminalCập nhật an toàn, không làm ai đứng hìnhbash
# 1. Xem phien ban hien tai va ghi laiollama --version && ollama list > /root/model-truoc-update.txt # 2. Cap nhatcurl -fsSL https://ollama.com/install.sh | sh # 3. Kiem sau khi cap nhatsystemctl status ollama --no-pager | head -3ollama list                       # model phai con nguyenollama run qwen2.5:7b "kiem tra" --verbose 2>&1 | tail -5

Model không bị xóa khi cập nhật vì chúng nằm trong thư mục dữ liệu riêng. Việc duy nhất gián đoạn là vài giây khởi động lại dịch vụ, nên chọn giờ vắng và báo trước nếu có người dùng.

Phục vụ nhiều người: hai van và cách chọn số

BiếnÝ nghĩaCách chọn
OLLAMA_NUM_PARALLELSố yêu cầu xử lý song song cho mỗi modelBắt đầu 2. Tăng lên 4 chỉ khi bộ nhớ còn dư nhiều
OLLAMA_MAX_LOADED_MODELSSố model giữ trong bộ nhớ cùng lúc1 nếu chỉ dùng một model. 2 khi có model nhúng riêng cho hỏi đáp tài liệu
OLLAMA_KEEP_ALIVEGiữ model trong bộ nhớ bao lâu sau lần gọi cuối30 phút cho máy dùng chung, giá trị âm một cho máy chuyên dụng
OLLAMA_MAX_QUEUESố yêu cầu chờ tối đaĐể mặc định, chỉ chỉnh khi có hàng đợi dài

Công thức ước lượng bộ nhớ: dung lượng model nhân với số model giữ trong bộ nhớ, cộng khoảng 1 tới 3 GB cho mỗi luồng song song tùy độ dài ngữ cảnh, cộng 2 GB cho hệ điều hành. Vượt bộ nhớ thật là máy tráo trang và tốc độ tụt hàng chục lần.

Giám sát tự động, ba dòng

TerminalGiám sát tự động, ba dòngbash
# /etc/systemd/system/ollama-check.service (Type=oneshot)# ExecStart=/bin/sh -c 'curl -sf http://127.0.0.1:11434/api/tags >/dev/null || (logger -t ollama-check "khong phan hoi, restart"; systemctl restart ollama)'# kem timer chay moi 5 phutjournalctl -t ollama-check --since "30 days ago"   # xem da phai cuu bao nhieu lan

Phải cứu nhiều lần trong tuần là triệu chứng của nguyên nhân khác: hết bộ nhớ, hết dung lượng ổ, hoặc model quá lớn so với máy. Giám sát chỉ mua thời gian, không chữa bệnh.

Câu hỏi thường gặp

Ollama có cần restart định kỳ không?

Không theo lịch, dịch vụ chạy dài ổn định. Restart khi đổi cấu hình systemd, sau update, hoặc khi log báo bất thường. Cứ để systemd tự hồi sinh khi crash là đủ.

Nên tách kho model sang ổ/phân vùng riêng không?

Đáng làm trên server nghiêm túc: OLLAMA_MODELS trỏ sang phân vùng NVMe riêng giúp kho model trăm GB không bóp nghẹt phân vùng hệ thống, backup/di chuyển cũng gọn, copy nguyên thư mục là mang được sang máy mới.

Đo được lượng dùng của từng người/từng app không?

Ollama thuần không có tính năng đó, nó không có khái niệm tài khoản. Cần thống kê per-user thì đặt LiteLLM proxy đứng trước (phát API key từng người, đếm token) hoặc đo ở tầng app (n8n, Dify đều log được lượt gọi).

VPS đang chạy web, thêm Ollama vào chung có ổn không?

Ổn nếu RAM tính đủ cho cả hai và chấp nhận lúc AI suy nghĩ thì CPU bận. Cách chững chạc: đặt nice/cpu quota cho dịch vụ ollama qua systemd để web luôn được ưu tiên, hoặc tách hẳn AI sang VPS riêng khi cả hai đều có người dùng thật.

Chia sẻ:Facebook

Thanh Nguyễn

TND

Tư vấn bản quyền, VPS và máy chủ kèm hóa đơn VAT, hợp đồng đầy đủ cho doanh nghiệp.