AI Automation

VPS n8n là gì, cấu hình tối ưu để chạy tự động hóa

Bạn vừa cài xong n8n trên VPS, chạy thử vài workflow đơn giản thì thấy ổn. Nhưng khi gắn thêm vài node AI, thêm cron job chạy mỗi 5 phút, thêm cả webhook từ website, thì VPS bắt đầu ì ạch, web UI load chậm, workflow chạy sai giờ. Vấn đề không nằm ở n8n mà nằm ở chỗ VPS ban đầu không được chọn và cấu hình cho đúng loại workload này. Bài viết dưới đây sẽ giúp bạn hiểu VPS n8n là gì, cần tài nguyên ra sao và cách tinh chỉnh để workflow automation chạy mạnh mẽ trên một chiếc VPS n8n có chi phí hợp lý.

VPS n8n là gì?

VPS n8n là một máy chủ ảo riêng (VPS) được sử dụng để tự host n8n, nền tảng tự động hóa workflow mã nguồn mở. Thay vì trả phí định kỳ cho bản cloud của n8n, bạn chủ động thuê một VPS, cài đặt n8n lên đó và toàn quyền quản trị toàn bộ hệ thống. Với VPS, bạn có quyền root, tự do cài thêm PostgreSQL, Redis, Docker và hàng trăm công cụ khác mà bản cloud không cho phép.

Cụ thể hơn, một chiếc VPS chạy n8n sẽ đảm nhận các tác vụ sau:

  • Chạy web UI để bạn thiết kế workflow bằng cách kéo thả.
  • Thực thi các workflow theo lịch (cron), theo webhook hoặc theo sự kiện từ ứng dụng khác.
  • Lưu trữ dữ liệu phiên làm việc, credentials và lịch sử execution vào database.
  • Kết nối tới các API bên ngoài như OpenAI, Telegram, Google Sheets hay chính website của bạn.

Điểm mấu chốt khiến VPS n8n khác với việc chạy n8n trên máy tính cá nhân là tính luôn sẵn sàng và ổn định. Workflow chạy trong giờ hành chính kể cả khi bạn tắt máy, và bạn có thể cài thêm reverse proxy Nginx, SSL để truy cập an toàn từ bất kỳ đâu.

Vì sao không phải VPS nào cũng phù hợp để chạy n8n?

Nhiều người mua VPS 1GB RAM giá rẻ về cài n8n bằng Docker, chạy được vài ngày đầu rồi gặp liên tiếp các lỗi memory leak hoặc container bị kill. Lý do rất đơn giản: n8n chạy trên nền Node.js, và mỗi workflow execution đều chiếm một lượng RAM nhất định. Khi bạn dùng thêm các node AI (như OpenAI, Anthropic) hoặc chạy code JavaScript phức tạp, RAM tiêu thụ có thể tăng vọt theo từng request.

Một chiếc VPS dùng chung tài nguyên, ổ cứng HDD cũ và CPU bị giới hạn sẽ không đáp ứng được cường độ hoạt động của automation. Workflow chạy chậm, API timeout, hoặc tệ hơn là toàn bộ container sập giữa chừng khiến dữ liệu xử lý dở dang. Đây là lý do bạn cần xác định rõ nhu cầu trước khi chọn gói VPS Linux.

VPS chạy n8n cần cấu hình tối thiểu bao nhiêu?

Với n8n chạy Docker Compose đơn thuần, chưa kể database và các service phụ trợ, bạn cần tối thiểu 2GB RAM và 2 vCPU để vận hành mượt mà. Đây là cấu hình phù hợp cho người mới bắt đầu, chạy khoảng 50 workflow đơn giản dạng kéo thả, không dùng nhiều node AI nặng.

Mục đích sử dụng Số workflow RAM đề xuất vCPU đề xuất
Cá nhân, thử nghiệm 10-30 workflow 2 GB 2 vCPU
Doanh nghiệp nhỏ, tự động hóa nghiệp vụ 50-200 workflow 4 GB 4 vCPU
Xử lý dữ liệu lớn, nhiều AI agent Trên 500 workflow 8-16 GB 6-8 vCPU

Con số trên chỉ là điểm khởi đầu. Nếu bạn chạy nhiều workflow đồng thời, lên lịch chạy cùng một mốc giờ cao điểm, hoặc dùng n8n queue mode tách worker riêng, bạn cần nhân đôi RAM. Mình từng chứng kiến một workflow xử lý 10.000 bản ghi từ Google Sheets chiếm tới 1,5GB RAM chỉ trong một lần thực thi.

Cấu hình VPS n8n tối ưu để chạy automation mạnh mẽ

Sau khi xác định được nhu cầu, việc tiếp theo là chọn gói VPS và cài đặt hệ thống cho đúng. Dưới đây là các bước mình áp dụng cho mọi VPS n8n, dù là máy 2GB hay 16GB RAM.

Bước 1: Chọn đúng loại ổ cứng và dung lượng

Ổ cứng NVMe là yêu cầu bắt buộc, không phải tùy chọn. n8n ghi log execution liên tục, database cũng thao tác đọc ghi thường xuyên. Ổ HDD hay SSD SATA sẽ tạo ra độ trễ đáng kể khi bạn mở history của workflow hoặc khi database cần ghi nhiều bản ghi cùng lúc. Một chiếc VPS dùng ổ NVMe SSD sẽ cho tốc độ đọc ghi nhanh gấp nhiều lần, giúp toàn bộ thao tác trên n8n phản hồi tức thì.

Dung lượng ổ cứng tối thiểu nên là 40GB. Con số này nghe có vẻ lớn, nhưng image Docker của n8n đã chiếm khoảng 1-2GB, cộng thêm image PostgreSQL, Redis và volume chứa dữ liệu. Log execution của n8n cũng lớn dần theo thời gian nếu bạn không cấu hình xóa log tự động.

Bước 2: Cài đặt n8n bằng Docker Compose thay vì npm

Cài n8n bằng npm install trực tiếp lên VPS rất nhanh nhưng khó quản lý khi cần nâng cấp hoặc rollback. Docker Compose giúp bạn đóng gói toàn bộ n8n, PostgreSQL và Redis vào các container riêng biệt, dễ dàng sao lưu và chuyển máy chủ.

version: "3.8"
services:
  postgres:
    image: postgres:16-alpine
    restart: always
    environment:
      POSTGRES_USER: n8n
      POSTGRES_PASSWORD: your_password
      POSTGRES_DB: n8n
    volumes:
      - postgres_data:/var/lib/postgresql/data

  redis:
    image: redis:7-alpine
    restart: always

  n8n:
    image: n8nio/n8n:latest
    restart: always
    ports:
      - "5678:5678"
    environment:
      DB_TYPE: postgresdb
      DB_POSTGRESDB_HOST: postgres
      DB_POSTGRESDB_PORT: 5432
      DB_POSTGRESDB_DATABASE: n8n
      DB_POSTGRESDB_USER: n8n
      DB_POSTGRESDB_PASSWORD: your_password
      N8N_ENCRYPTION_KEY: your_encryption_key
    volumes:
      - n8n_data:/home/node/.n8n
    depends_on:
      - postgres
      - redis

volumes:
  n8n_data:
  postgres_data:

Cấu hình trên tách riêng database về PostgreSQL, dùng Redis cho queue mode nếu sau này bạn mở rộng. Lưu ý thay your_passwordyour_encryption_key bằng giá trị ngẫu nhiên dài. Chạy lệnh sau để khởi động:

docker compose up -d

Kiểm tra trạng thái container bằng lệnh:

docker compose ps

Bạn sẽ thấy cả 3 container đều ở trạng thái Up (healthy). Truy cập http://IP_VPS:5678 để bắt đầu cấu hình tài khoản admin.

Bước 3: Giới hạn bộ nhớ container để tránh sập toàn hệ thống

Đây là bước nhiều người bỏ qua nhưng cực kỳ quan trọng. Khi một workflow chạy sai hoặc bị lặp vô hạn, RAM của container n8n có thể tăng không kiểm soát, kéo theo toàn bộ VPS bị đứng. Thêm giới hạn mem_limitcpus vào service n8n trong file docker-compose.yml:

  n8n:
    image: n8nio/n8n:latest
    mem_limit: 3g
    cpus: 2.0

Với VPS 4GB RAM, bạn nên đặt mem_limit là 3GB để dành RAM cho PostgreSQL và Redis. Nếu VPS 2GB RAM, hãy giảm xuống còn 1.5GB, chấp nhận đổi lấy việc ít workflow chạy song song hơn. Sau khi sửa file, áp dụng cấu hình mới:

docker compose up -d

Cách này giúp container bị kill chứ không làm sập cả VPS. Khi đó bạn chỉ cần kiểm tra log và sửa workflow lỗi, hệ thống vẫn hoạt động bình thường.

Bước 4: Tinh chỉnh PostgreSQL cho phù hợp RAM

PostgreSQL chạy mặc định khá tham lam RAM. Nếu VPS của bạn chỉ có 2-4GB, cần giới hạn các tham số cache để dành tài nguyên cho n8n. Tạo file cấu hình postgresql.conf bổ sung:

shared_buffers = 256MB
effective_cache_size = 512MB
work_mem = 4MB
maintenance_work_mem = 32MB

Với VPS 2GB RAM, dùng giá trị trên là hợp lý. Với VPS 8GB RAM, bạn có thể tăng shared_buffers lên 1-2GB. Đây là điểm đánh đổi: PostgreSQL dành quá nhiều RAM sẽ khiến n8n thiếu chỗ xử lý workflow, còn quá ít thì database chậm.

Cách kiểm tra VPS n8n có đang hoạt động đúng công suất không

Trước khi đưa vào sử dụng chính thức, bạn nên chạy thử một bài test tải để biết VPS n8n của mình chịu được bao nhiêu workflow đồng thời. Quan sát tài nguyên bằng lệnh:

docker stats

Lệnh này hiển thị mức CPU và RAM thời gian thực của từng container. Nếu container n8n thường xuyên chạm ngưỡng mem_limit, bạn cần nâng cấp gói VPS hoặc tối ưu workflow bằng cách giãn lịch chạy, tránh để nhiều workflow nặng cùng thực thi một lúc.

Một cách giám sát khác là dùng lệnh kiểm tra log để phát hiện workflow lỗi:

docker logs n8n --tail 100

Khi thấy các dòng báo ERROR hoặc OOM, bạn biết ngay vấn đề nằm ở đâu để xử lý kịp thời.

Khi nào nên nâng cấp hoặc chuyển sang queue mode?

Khi số workflow tăng lên vài trăm, hoặc bạn bắt đầu dùng nhiều node AI xử lý dữ liệu lớn, một instance n8n đơn lẻ sẽ không đủ. Lúc này bạn có hai lựa chọn: nâng cấp VPS lên cấu hình cao hơn hoặc chuyển n8n sang queue mode với Redis để chạy nhiều worker song song.

Chạy n8n queue mode khi workflow vượt tầm kiểm soát

Queue mode tách phần xử lý workflow khỏi phần web UI. Bạn vẫn dùng một container n8n chính cho giao diện, nhưng thêm một hoặc nhiều container worker chuyên xử lý execution. Redis đóng vai trò hàng đợi phân phối công việc. Thêm service worker vào docker-compose.yml:

  n8n-worker:
    image: n8nio/n8n:latest
    command: ["n8n", "worker"]
    mem_limit: 4g
    environment:
      DB_TYPE: postgresdb
      DB_POSTGRESDB_HOST: postgres
      DB_POSTGRESDB_PORT: 5432
      DB_POSTGRESDB_DATABASE: n8n
      DB_POSTGRESDB_USER: n8n
      DB_POSTGRESDB_PASSWORD: your_password
      N8N_ENCRYPTION_KEY: your_encryption_key
      EXECUTIONS_MODE: queue
      REDIS_HOST: redis
      N8N_ENABLE_QUEUE_WORKERS: "true"
    volumes:
      - n8n_data:/home/node/.n8n
    depends_on:
      - postgres
      - redis

Chế độ này phù hợp khi bạn cần xử lý hàng nghìn execution mỗi ngày, chẳng hạn đồng bộ dữ liệu giữa nhiều nguồn hoặc gửi email hàng loạt theo lịch.

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

Nên chọn VPS bao nhiêu RAM để chạy n8n cho 100 workflow?

Với 100 workflow thông thường, không dùng AI nặng, VPS 4GB RAM và 4 vCPU là đủ. Nếu workflow thường xuyên xử lý dữ liệu lớn hoặc gọi API nhiều, bạn nên nâng lên 8GB RAM để thoải mái xử lý các đợt chạy đồng thời vào giờ cao điểm.

VPS n8n giá rẻ 2GB RAM có chạy được không?

Có thể chạy, nhưng chỉ phù hợp để học tập và thử nghiệm với dưới 30 workflow. Khi số workflow tăng hoặc bạn dùng nhiều AI node, bạn cần giới hạn mem_limit ở mức 1.5GB và chấp nhận việc một số workflow chạy chậm khi thiếu tài nguyên.

Vì sao n8n chạy trên VPS bị chậm dần theo thời gian?

Nguyên nhân phổ biến nhất là log execution và dữ liệu database tăng không kiểm soát. Bạn nên cấu hình xóa log tự động trong n8n bằng cách vào Settings, chọn Execution Data, đặt thời gian giữ log tối đa 7 ngày. Ngoài ra, hãy chạy docker system prune -f định kỳ để dọn image Docker thừa.

VPS chạy n8n có cần IPv4 riêng không?

Nên có. Một IPv4 riêng giúp bạn gắn tên miền, cấu hình SSL và đặc biệt quan trọng khi n8n cần gọi webhook từ các dịch vụ bên ngoài như GitHub, Stripe. Địa chỉ IP dùng chung dễ bị blacklist và hạn chế một số API.

Bài viết liên quan

Lưu ý: Bài viết mang tính tham khảo, tổng hợp kiến thức chung. Mỗi hệ thống, hạ tầng và nhu cầu có đặc thù riêng, nên kiểm thử trong môi trường an toàn và tham vấn kỹ sư trước khi triển khai thực tế.