close

Hướng dẫn fix lỗi Out of Memory (OOM) khi chạy AI Agent trên VPS 

Tác giả: Đông Tùng Ngày đăng: 20/10/2026 Chuyên mục: AI Agent
Disclosure
Website Tino blog được cung cấp bởi Tino Group. Truy cập và sử dụng website đồng nghĩa với việc bạn đồng ý với các điều khoản và điều kiện trong chính sách bảo mật - điều khoản sử dụng nội dung. Tino Group có thể thay đổi điều khoản sử dụng bất cứ lúc nào. Việc bạn tiếp tục sử dụng Tino blog sau khi thay đổi có nghĩa là bạn chấp nhận những thay đổi đó.
Why Trust Us
Các bài viết với hàm lượng tri thức cao tại Tino blog được tạo ra bởi các chuyên viên Marketing vững chuyên môn và được kiểm duyệt nghiêm túc theo chính sách biên tập bởi đội ngũ biên tập viên dày dặn kinh nghiệm. Mọi nỗ lực của chúng tôi đều hướng đến mong muốn mang đến cho cộng đồng nguồn thông tin chất lượng, chính xác, khách quan, đồng thời tuân thủ các tiêu chuẩn cao nhất trong báo cáo và xuất bản.

Để fix lỗi Out of Memory (OOM) khi chạy AI Agent trên VPS, bạn cần kiểm tra dung lượng RAM, xác định tiến trình tiêu thụ bộ nhớ và điều chỉnh tài nguyên phù hợp. Trong nhiều trường hợp, tạo thêm Swap hoặc giảm số tác vụ chạy đồng thời có thể giúp AI Agent hoạt động ổn định hơn mà chưa cần nâng cấp VPS. Bài viết dưới đây sẽ hướng dẫn cách tìm nguyên nhân và khắc phục lỗi bằng những thao tác Linux cơ bản, phù hợp ngay cả với người mới sử dụng VPS. 

Lỗi Out of Memory (OOM) trên VPS là gì?

Out of Memory (OOM) là tình trạng hệ thống hoặc một ứng dụng không còn đủ bộ nhớ được phép sử dụng để tiếp tục hoạt động bình thường.

Trên VPS Linux, khi bộ nhớ cạn kiệt và hệ thống không thể thu hồi đủ tài nguyên, cơ chế OOM Killer có thể kết thúc một hoặc nhiều tiến trình nhằm giải phóng RAM, hạn chế ảnh hưởng đến toàn bộ máy chủ.

Lỗi OOM có thể xảy ra theo hai trường hợp:

  • Hết bộ nhớ toàn hệ thống: VPS không còn đủ bộ nhớ khả dụng để đáp ứng nhu cầu của các tiến trình.
  • Vượt giới hạn bộ nhớ của ứng dụng: AI Agent chạy trong Docker hoặc một nhóm tiến trình bị giới hạn RAM, dù VPS vẫn còn bộ nhớ trống.

Theo tài liệu Docker, container có thể gặp OOM khi chạm giới hạn bộ nhớ được cấu hình riêng, không nhất thiết phải đợi toàn bộ VPS hết RAM.

Hướng dẫn fix lỗi Out of Memory (OOM) khi chạy AI Agent trên VPS  1

Dấu hiệu và nguyên nhân khiến AI Agent bị lỗi OOM

Dấu hiệu nhận biết lỗi OOM

Khi AI Agent gặp sự cố liên quan đến bộ nhớ, bạn có thể nhận thấy:

  • AI Agent đang xử lý công việc thì ngừng phản hồi.
  • Dashboard hoặc giao diện quản lý đột ngột mất kết nối.
  • VPS phản hồi chậm, thao tác SSH bị gián đoạn.
  • Container Docker tự dừng hoặc liên tục khởi động lại.
  • Nhật ký hệ thống xuất hiện Out of memory, Killed process hoặc oom-kill.
  • Tiến trình kết thúc với mã 137 hoặc hiển thị trạng thái OOMKilled.

Lưu ý: Exit Code 137 cho biết tiến trình bị kết thúc bằng tín hiệu SIGKILL. Đây là dấu hiệu cần kiểm tra, nhưng chưa đủ để khẳng định nguyên nhân chắc chắn là hết RAM.

Dấu hiệu và nguyên nhân khiến AI Agent bị lỗi OOM
Dấu hiệu và nguyên nhân khiến AI Agent bị lỗi OOM

Những nguyên nhân phổ biến

Một số nguyên nhân thường gặp khi vận hành AI Agent trên VPS bao gồm:

  • RAM quá thấp: Tổng bộ nhớ không đáp ứng được nhu cầu của AI Agent và những dịch vụ chạy cùng máy chủ.
  • Nhiều tác vụ chạy đồng thời: Các Agent, công việc tự động hoặc tiến trình xử lý nền cùng tiêu thụ RAM.
  • Xử lý dữ liệu lớn: AI Agent cần đọc tài liệu dài, xử lý hình ảnh, sử dụng trình duyệt hoặc thực hiện nhiều thao tác liên tiếp.
  • Giới hạn RAM trong Docker: Container chỉ được sử dụng một phần bộ nhớ, thấp hơn nhu cầu thực tế.
  • Chạy mô hình AI trực tiếp trên VPS: Ollama hoặc các công cụ suy luận AI cục bộ có thể cần lượng RAM đáng kể tùy mô hình và cấu hình.
  • Rò rỉ bộ nhớ: Ứng dụng hoặc thành phần mở rộng tiếp tục tăng mức sử dụng RAM trong thời gian dài mà không giải phóng tương ứng.

Ngoài ra, nếu VPS chạy đồng thời AI Agent, n8n, PostgreSQL, Redis hoặc các ứng dụng khác, tổng nhu cầu RAM có thể vượt quá tài nguyên sẵn có.

Hướng dẫn fix lỗi Out of Memory khi chạy AI Agent trên VPS

Để khắc phục lỗi OOM, bạn nên thực hiện theo thứ tự: kiểm tra RAM → xác định tiến trình gây lỗi → xem nhật ký hệ thống → bổ sung Swap hoặc điều chỉnh giới hạn bộ nhớ → kiểm tra lại AI Agent.

Hướng dẫn dưới đây sử dụng VPS Ubuntu Linux và thao tác thông qua SSH bằng Xshell hoặc ứng dụng Terminal tương tự. Với Debian, nhiều câu lệnh cũng có thể sử dụng trực tiếp.

Lưu ý trước khi bắt đầu: Nếu đang vận hành AI Agent phục vụ công việc thực tế, hãy sao lưu cấu hình và dữ liệu quan trọng trước khi thay đổi giới hạn tài nguyên hoặc khởi động lại dịch vụ.

Bước 1: Kiểm tra dung lượng RAM và Swap

Trước tiên, đăng nhập VPS qua SSH và chạy lệnh:

free -h

Lệnh này hiển thị thông tin RAM và Swap hiện tại.

Kiểm tra dung lượng RAM và Swap
Kiểm tra dung lượng RAM và Swap

Trong kết quả, hãy chú ý:

Thông sốÝ nghĩa
totalTổng dung lượng bộ nhớ
usedBộ nhớ đang được sử dụng
freeBộ nhớ chưa được sử dụng
availableBộ nhớ ước tính còn khả dụng cho ứng dụng
SwapDung lượng bộ nhớ hoán đổi

Quan trọng: Hãy chú ý cột available thay vì chỉ dựa vào free, vì Linux sử dụng một phần RAM để lưu bộ nhớ đệm có thể thu hồi.

Ví dụ, nếu VPS có 2 GB RAM và dung lượng available liên tục giảm xuống mức rất thấp khi AI Agent hoạt động, đây có thể là dấu hiệu thiếu bộ nhớ.

Để kiểm tra riêng Swap, nhập:

swapon --show

Nếu kết quả không hiển thị thông tin, hệ thống có thể chưa kích hoạt Swap.

Bước 2: Xác định tiến trình gây tràn RAM

Tiếp theo, sử dụng lệnh:

top

Hệ thống sẽ hiển thị danh sách tiến trình đang hoạt động.

Xác định tiến trình gây tràn RAM
Xác định tiến trình gây tràn RAM

Bạn cần quan sát hai cột:

  • %MEM: Tỷ lệ RAM được tiến trình sử dụng.
  • RES: Dung lượng bộ nhớ vật lý mà tiến trình đang chiếm giữ.

Nhấn phím q để thoát.

Ngoài ra, bạn có thể dùng lệnh sau để hiển thị nhanh 10 tiến trình sử dụng nhiều RAM nhất:

ps aux --sort=-%mem | head -n 11

Nếu danh sách xuất hiện những tiến trình như node, python, chrome hoặc ollama, hãy kiểm tra xem tiến trình nào thuộc AI Agent và có đang tiêu thụ bộ nhớ bất thường hay không.

Xác định tiến trình gây tràn RAM
Xác định tiến trình gây tràn RAM

Không nên kết thúc tiến trình chỉ dựa vào tên hoặc tỷ lệ RAM cao. Một số tiến trình có thể đang thực hiện công việc cần thiết cho hệ thống.

Bước 3: Kiểm tra nhật ký OOM trên VPS

Đây là bước quan trọng để xác định VPS có thực sự gặp lỗi Out of Memory hay không.

Nhập lệnh:

sudo journalctl -k --since "24 hours ago" --no-pager | grep -Ei 'out of memory|oom-kill|killed process'

Lệnh sẽ tìm những thông báo liên quan đến OOM trong nhật ký kernel của 24 giờ gần nhất.

Ví dụ, nếu xuất hiện thông báo dạng:

Out of memory: Killed process 1234 (node)

Điều này cho biết kernel đã kết thúc một tiến trình Node.js để giải phóng bộ nhớ.

Nếu không tìm thấy thông báo, bạn có thể thử:

sudo dmesg -T | grep -Ei 'out of memory|oom-kill|killed process'

Trường hợp VPS vừa khởi động lại, có thể kiểm tra nhật ký lần khởi động trước bằng:

sudo journalctl -k -b -1 --no-pager | grep -Ei 'out of memory|oom-kill|killed process'

Lệnh cuối chỉ có tác dụng khi nhật ký của lần khởi động trước còn được lưu.

Lưu ý: Không tìm thấy thông báo chưa đủ để loại trừ lỗi OOM. Bạn vẫn cần kiểm tra giới hạn bộ nhớ trong Docker hoặc nhật ký riêng của ứng dụng.

Bước 4: Tạo thêm Swap cho VPS

Swap là một vùng lưu trữ trên ổ đĩa được Linux sử dụng để hỗ trợ quản lý bộ nhớ khi RAM chịu áp lực. Bổ sung Swap có thể giúp giảm nguy cơ tiến trình bị kết thúc do thiếu bộ nhớ trong một số trường hợp.

Ví dụ dưới đây hướng dẫn tạo Swap 2 GB trên VPS Ubuntu sử dụng hệ thống tệp thông dụng như ext4.

Chỉ thực hiện khi VPS còn đủ dung lượng ổ đĩa và chưa có Swap phù hợp. Các hệ thống tệp như Btrfs, ZFS hoặc VPS dùng cơ chế quản lý bộ nhớ đặc biệt có thể cần quy trình riêng.

1. Kiểm tra dung lượng ổ đĩa

df -h /

Đảm bảo phân vùng còn đủ dung lượng để tạo tệp Swap 2 GB và vẫn có không gian cho hệ điều hành.

Tạo thêm Swap cho VPS
Tạo thêm Swap cho VPS

Kiểm tra xem tên tệp dự kiến đã tồn tại hay chưa:

ls -lh /swapfile-ai

Nếu hệ thống báo không tìm thấy tệp, bạn có thể tiếp tục.

2. Tạo tệp Swap 2 GB

sudo dd if=/dev/zero of=/swapfile-ai bs=1M count=2048 status=progress

Chờ quá trình ghi hoàn tất. Không chạy lại lệnh tạo tệp khi /swapfile-ai đã tồn tại.

Tạo tệp Swap 2 GB
Tạo tệp Swap 2 GB

3. Thiết lập quyền truy cập

sudo chmod 600 /swapfile-ai

4. Định dạng tệp thành Swap

sudo mkswap /swapfile-ai

5. Kích hoạt Swap

sudo swapon /swapfile-ai

6. Kiểm tra kết quả

free -h

Nếu thực hiện thành công, dung lượng Swap của hệ thống sẽ tăng thêm khoảng 2 GB.

Tạo tệp Swap 2 GB
Tạo tệp Swap 2 GB

7. Thiết lập Swap tự kích hoạt khi VPS khởi động

Trước tiên, sao lưu cấu hình:

sudo cp /etc/fstab /etc/fstab.bak-oom

Sau đó, thêm cấu hình Swap:

echo '/swapfile-ai none swap sw 0 0' | sudo tee -a /etc/fstab

Chỉ thêm dòng cấu hình một lần, tránh tạo các mục trùng lặp.

Lưu ý quan trọng: Swap không phải RAM vật lý. Việc đọc và ghi trên ổ đĩa thường chậm hơn RAM, vì vậy bổ sung Swap chỉ là giải pháp hỗ trợ. Nếu AI Agent liên tục sử dụng lượng lớn Swap, hiệu suất có thể giảm đáng kể.

Bước 5: Xử lý giới hạn RAM nếu chạy AI Agent bằng Docker

Nếu AI Agent được triển khai bằng Docker, bạn cần kiểm tra giới hạn bộ nhớ của container, bởi VPS còn RAM không đồng nghĩa container vẫn còn tài nguyên được phép sử dụng.

Trước tiên, liệt kê container:

docker ps -a

Xác định tên container đang chạy AI Agent.

Tiếp theo, kiểm tra tài nguyên:

docker stats --no-stream

Trong kết quả, cột MEM USAGE / LIMIT hiển thị bộ nhớ container đang sử dụng và giới hạn bộ nhớ tương ứng.

Xử lý giới hạn RAM nếu chạy AI Agent bằng Docker
Xử lý giới hạn RAM nếu chạy AI Agent bằng Docker

Bạn có thể kiểm tra thông tin OOM bằng lệnh:

docker inspect --format '{{.State.OOMKilled}}' TEN_CONTAINER

Thay TEN_CONTAINER bằng tên thực tế.

  • true: Docker ghi nhận container bị kết thúc do OOM.
  • false: Trạng thái hiện tại không ghi nhận OOM; vẫn cần xem nhật ký nếu container đã được khởi động lại.
Xử lý giới hạn RAM nếu chạy AI Agent bằng Docker
Xử lý giới hạn RAM nếu chạy AI Agent bằng Docker

Để xem giới hạn RAM được cấu hình:

docker inspect --format '{{.HostConfig.Memory}}' TEN_CONTAINER

Giá trị được trả về theo byte. Giá trị 0 thường có nghĩa container không được thiết lập giới hạn RAM riêng bằng tùy chọn Docker tương ứng.

Xử lý giới hạn RAM nếu chạy AI Agent bằng Docker
Xử lý giới hạn RAM nếu chạy AI Agent bằng Docker

Nếu container bị giới hạn RAM quá thấp thì xử lý thế nào?

Bạn có thể tăng giới hạn bộ nhớ, nhưng chỉ khi VPS có đủ tài nguyên để cấp phát thêm.

Ví dụ, với một VPS 4 GB RAM có đủ dung lượng khả dụng, lệnh sau minh họa cách đặt giới hạn RAM container thành 2 GB, tổng RAM và Swap thành 3 GB:

docker update --memory 2g --memory-swap 3g TEN_CONTAINER

Đây chỉ là ví dụ cấu hình, không phải thông số phù hợp cho mọi VPS. Cần tính cả bộ nhớ của hệ điều hành và các dịch vụ khác. Nếu ứng dụng được quản lý bằng Docker Compose, hãy đồng bộ thay đổi trong tệp Compose để tránh mất cấu hình khi tạo lại container.

Với Docker Compose, thuộc tính mem_limit có thể được sử dụng trong cấu hình của service. Chẳng hạn:

services:

  ai-agent:

    mem_limit: 2g

Đoạn YAML trên chỉ minh họa phần cấu hình bộ nhớ. Không thay thế toàn bộ tệp compose.yaml bằng ví dụ này.

Sau khi chỉnh sửa cấu hình Compose thực tế, kiểm tra cú pháp bằng:

docker compose config

Nếu hợp lệ, thực hiện cập nhật trong thư mục dự án:

docker compose up -d

Lệnh có thể tạo lại container, vì vậy cần sao lưu cấu hình và dữ liệu liên quan trước khi triển khai.

Nếu đang sử dụng VPS AI Agent có sẵn giao diện quản lý do nhà cung cấp triển khai, bạn nên kiểm tra cơ chế quản lý Docker trước khi tự ý thay đổi giới hạn container.

Bước 6: Kiểm tra lại hoạt động của AI Agent

Sau khi áp dụng giải pháp phù hợp, hãy kiểm tra lại hệ thống bằng các thao tác sau:

Kiểm tra RAM và Swap:

free -h

Kiểm tra tiến trình sử dụng bộ nhớ:

top

Nếu sử dụng Docker:

docker stats --no-stream

Nếu cài đặt OpenClaw bằng dịch vụ systemd user tiêu chuẩn, bạn có thể kiểm tra thêm:

systemctl --user status openclaw-gateway.service

Lệnh này cần chạy bằng đúng tài khoản Linux sở hữu dịch vụ OpenClaw. Cách cài đặt khác có thể sử dụng tên hoặc phương thức quản lý dịch vụ khác.

Cuối cùng, hãy gửi một yêu cầu đơn giản cho AI Agent, sau đó chạy lại một tác vụ từng gặp lỗi.

Nếu AI Agent phản hồi bình thường, bộ nhớ không tiếp tục tăng bất thường và không xuất hiện thêm sự kiện OOM trong quá trình theo dõi, giải pháp có thể đã phát huy hiệu quả.

Cách hạn chế lỗi OOM khi vận hành AI Agent

Ngoài xử lý sự cố, bạn nên áp dụng một số biện pháp nhằm giảm nguy cơ tràn RAM trong quá trình sử dụng lâu dài.

  • Giới hạn số tác vụ đồng thời: Tránh chạy quá nhiều AI Agent, sub-agent hoặc công việc tự động cùng lúc trên VPS nhỏ.
  • Phân chia công việc hợp lý: Với tác vụ xử lý dữ liệu lớn, nên chia thành những phần nhỏ thay vì thực hiện toàn bộ trong một lần.
  • Hạn chế dịch vụ không cần thiết: Kiểm tra các container, trình duyệt, công cụ xử lý nền hoặc dịch vụ phụ đang chiếm RAM.
  • Theo dõi bộ nhớ định kỳ: Sử dụng free, top, docker stats hoặc hệ thống giám sát máy chủ để phát hiện mức tiêu thụ bất thường.
  • Kiểm tra Plugin và Skill: Những thành phần mở rộng chạy thêm tiến trình hoặc trình duyệt có thể làm tăng nhu cầu RAM.
  • Sử dụng mô hình AI qua API khi phù hợp: Nếu VPS chỉ cần vận hành AI Agent, việc sử dụng mô hình từ nhà cung cấp bên ngoài có thể tránh phải lưu và chạy toàn bộ mô hình ngôn ngữ trực tiếp trên máy chủ.
  • Cập nhật ứng dụng có kiểm soát: Theo dõi các bản sửa lỗi hiệu năng hoặc bộ nhớ, sao lưu trước khi nâng cấp và kiểm tra tương thích.

Đối với OpenClaw, tài liệu chính thức cũng đề cập việc giảm tác vụ đồng thời, tăng giới hạn bộ nhớ hoặc sử dụng cơ chế kiểm soát tài nguyên khi VPS liên tục gặp OOM.

Không nên tắt OOM Killer để xử lý thiếu RAM. Docker cảnh báo rằng việc vô hiệu hóa cơ chế bảo vệ khi tài nguyên không được kiểm soát đúng cách có thể khiến toàn bộ máy chủ gặp sự cố nghiêm trọng.

Cách hạn chế lỗi OOM khi vận hành AI Agent
Cách hạn chế lỗi OOM khi vận hành AI Agent

Khi nào cần nâng cấp RAM VPS?

Bạn nên cân nhắc nâng cấp RAM khi các giải pháp giảm tải, cấu hình lại giới hạn bộ nhớ và bổ sung Swap không còn đáp ứng được nhu cầu vận hành.

Một số dấu hiệu đáng chú ý:

  • RAM khả dụng liên tục ở mức rất thấp trong giờ hoạt động bình thường.
  • AI Agent thường xuyên gặp OOM khi thực hiện các tác vụ cần thiết.
  • Hệ thống sử dụng Swap nhiều, kéo theo tốc độ xử lý chậm.
  • VPS chạy nhiều ứng dụng cùng lúc và không thể giảm thêm số tiến trình.
  • Nhu cầu sử dụng mô hình AI cục bộ, nhiều Agent hoặc các công cụ xử lý dữ liệu ngày càng tăng.

Không có một mức RAM cố định phù hợp với mọi AI Agent. Cấu hình cần thiết phụ thuộc vào nền tảng, số lượng tác vụ đồng thời, thành phần mở rộng, mô hình AI và các dịch vụ chạy cùng VPS.

Do đó, nên lựa chọn dung lượng RAM dựa trên mức sử dụng thực tế và nhu cầu mở rộng, thay vì nâng cấp chỉ vì thấy chỉ số RAM đã dùng ở mức cao tại một thời điểm.

Kết luận

Lỗi Out of Memory khi chạy AI Agent trên VPS thường liên quan đến thiếu bộ nhớ khả dụng, giới hạn tài nguyên hoặc mức tiêu thụ RAM quá cao. Để khắc phục hiệu quả, bạn nên kiểm tra nhật ký OOM, xác định tiến trình gây lỗi và lựa chọn giải pháp phù hợp như giảm tác vụ đồng thời, bổ sung Swap hoặc điều chỉnh cấu hình Docker.

Nếu tình trạng thiếu bộ nhớ vẫn thường xuyên xảy ra, nâng cấp RAM VPS sẽ là hướng xử lý bền vững hơn, đặc biệt khi AI Agent cần hoạt động liên tục và xử lý nhiều công việc.

Những câu hỏi thường gặp

Khởi động lại VPS có giúp xử lý lỗi Out of Memory không?

Khởi động lại có thể giải phóng bộ nhớ đang được các tiến trình sử dụng và giúp hệ thống hoạt động trở lại tạm thời. Tuy nhiên, nếu nguyên nhân xuất phát từ thiếu RAM, giới hạn container hoặc rò rỉ bộ nhớ, sự cố có thể tiếp diễn. Bạn nên kiểm tra nhật ký trước khi khởi động lại nếu vẫn có thể truy cập máy chủ.

Vì sao Docker bị OOMKilled dù VPS vẫn còn RAM trống?

Nguyên nhân phổ biến là container đang bị giới hạn bộ nhớ riêng. Khi mức sử dụng vượt ngưỡng cho phép, tiến trình có thể bị kết thúc dù hệ thống vẫn còn RAM khả dụng. Hãy kiểm tra cấu hình Docker, giới hạn memory cgroup và các sự kiện OOM trước khi quyết định tăng dung lượng RAM cho VPS.

Chạy AI Agent bằng API có cần VPS nhiều RAM không?

Vẫn cần RAM để vận hành AI Agent, quản lý phiên làm việc, chạy công cụ và xử lý dữ liệu. Tuy nhiên, nếu mô hình AI được xử lý trên máy chủ của nhà cung cấp API, VPS thường không phải tải toàn bộ trọng số mô hình vào bộ nhớ. Nhu cầu RAM thực tế phụ thuộc vào các tác vụ và công cụ đi kèm.

Exit Code 137 có chắc chắn là lỗi Out of Memory không?

Không. Exit Code 137 thể hiện tiến trình bị kết thúc bằng tín hiệu SIGKILL. Ngoài lỗi OOM, tín hiệu này còn có thể phát sinh từ thao tác kết thúc tiến trình hoặc những tình huống quản lý container khác. Cần kết hợp nhật ký kernel, trạng thái Docker và dữ liệu sử dụng RAM để xác định nguyên nhân.

Đông Tùng

Senior Technology Writer

Là cử nhân Quản trị kinh doanh của Trường Đại học Tài chính - Marketing, Tùng bắt đầu làm việc tại Tino Group từ năm 2021 ở vị trí Content Marketing để thỏa mãn niềm đam mê viết lách của bản thân. Sở hữu khả năng sáng tạo đặc biệt, anh cùng đội ngũ của mình đã tạo nên những chiến dịch quảng cáo độc đáo cùng vô số bài viết hữu ích về nhiều chủ đề khác nhau. Sự tỉ mỉ, kiên trì và tinh thần sáng tạo của Tùng đã góp phần lớn vào thành công của Tino Group trong lĩnh vực marketing trực tuyến.

Xem thêm bài viết

Bài viết liên quan

Xem nhiều