DevOps

VPS 2 GB untuk Agent AI: Cukup atau Tidak?

VPS 2 GB untuk Agent AI: Cukup atau Tidak?

Keterangan afiliasi: sebagian tautan di artikel ini adalah tautan afiliasi. Toolkuy dapat komisi bila kamu membeli lewat tautan itu, tanpa tambahan biaya buat kamu. Pilihan tetap ditentukan dari pengujian, bukan dari besaran komisi.

Jawaban singkat: cukup, kalau agent-nya cuma teks, satu atau dua channel chat, dan modelnya lewat API. Tidak cukup kalau lo ikut menumpuk Docker Compose, browser headless, embedding lokal, atau model bahasa lokal di mesin yang sama. Di VPS 3,8 GB milik gue, dua proses agent yang jalan bareng makan 157 MB dan 115 MB RAM, sementara mesin yang sama sudah memakai 1.851 MB dari 3.915 MB. Artinya beban agent itu kecil, beban di sekitarnya yang membunuh. VPS 2 GB menang atau kalah tergantung apa lagi yang lo taruh di sebelahnya.

TL;DR

  • Agent teks plus SQLite plus satu channel chat muat di bawah 300 MB RAM observasi.
  • Yang bikin 2 GB jebol biasanya bukan agent-nya, tapi Docker Compose, browser, dan model lokal.
  • Dokumentasi n8n sendiri minta minimal 4 GB RAM dan 2 vCPU untuk stack Compose dengan sandbox AI.
  • Kunci bertahan di 2 GB: swap 2 GB, mode memori FTS5-only, model lewat API, dan batas memori per container.

Berapa RAM yang sebenarnya dipakai sebuah agent AI?

Proses agent itu sendiri kecil. Yang besar adalah teman-temannya: browser, database, container, dan model yang ikut jalan di kotak yang sama. Angka di bawah ini gue ambil langsung dari satu VPS Ubuntu 24.04 dengan RAM 3,8 GB dan swap 6 GB, bukan dari brosur vendor.

Item yang diukur                 Nilai terukur
MemTotal                         4.009.496 kB (3,82 GiB)
MemAvailable                     2.128.632 kB (2,03 GiB)
Proses agent #1 (RSS)             161.244 kB (157 MiB)
Proses agent #2 (RSS)             117.992 kB (115 MiB)
Swap terpasang                   6.143,99 MB
Swap terpakai (saat ukur)          774 MB
Committed_AS / CommitLimit       6.120.852 / 8.296.196 kB (74%)
Ukuran DB agent (SQLite)          909 MB

Dua hal yang perlu dibaca dari tabel itu. Pertama, agent Rust dengan database 909 MB tetap duduk di kisaran 115 sampai 160 MB RSS. Kedua, mesin itu sudah memakai 1,8 GB walaupun agent-nya cuma segitu, karena ada mail server, DNS filter, monitoring, Tailscale, dan Next.js yang ikut hidup. Jadi pertanyaan “2 GB cukup?” sebenarnya pertanyaan tentang tetangga, bukan tentang agent.

Kalau mau angka pembanding dari dalam kode sumber, README OpenCrabs menyebut build rilisnya berupa satu binary Rust 34 sampai 36 MB, tanpa runtime Node.js dan tanpa node_modules sebesar 1 GB lebih. Binary yang lebih kecil bukan cuma soal disk: tidak ada interpreter yang harus naik dulu sebelum tool pertama dipanggil.

Kapan VPS 2 GB masih cukup?

Cukup kalau beban kerjanya satu agent, satu database, satu channel, dan model diakses lewat API. Kombinasi ini realistis untuk bot Telegram pribadi, cron harian, atau agent yang mengurus inbox dan laporan.

Anggaran kasarnya begini, dan ini rencana alokasi, bukan hasil ukur:

Komponen                        Target RAM
OS + systemd + journald          180 MB
Agent (binary + SQLite cache)    250 MB
Reverse proxy (Caddy/Nginx)       40 MB
Page cache dan sisa buffer       500 MB
Headroom untuk spike tool call   1000 MB
----------------------------------------------
Total rencana                   ~1.970 MB dari 2.048 MB

Yang membuat anggaran ini bertahan adalah mode memori. Agent yang mendukung pencarian memori hibrida biasanya menyalakan embedding lokal secara default, dan di mesin kecil itu justru pengeluaran pertama yang harus dimatikan. README OpenCrabs menyebut tiga mode: embedding lokal (model embeddinggemma-300M, 768 dimensi), API embedding, atau FTS5-only yang disebut ramah VPS dengan sekitar nol overhead RAM. Sistemnya juga mendeteksi lingkungan VPS dan mematikan embedding lokal otomatis. Untuk 2 GB, pilih FTS5-only atau API embedding, jangan yang lokal.

Kapan 2 GB berubah jadi jebakan?

Tiga pola paling sering, dan semuanya soal barang tambahan.

Pertama, Docker Compose. Dokumentasi resmi n8n untuk instalasi Docker Compose menulis syarat “at least 4 GB of RAM and 2 vCPUs”, dengan alasan eksplisit: container sandbox-runner-1 yang menjalankan kode hasil AI memakai Docker-in-Docker dan butuh ruang lebih. Kalau stack acuan industri saja minta 4 GB untuk versi AI-nya, mendaratkan stack serupa di 2 GB berarti lo menghemat RAM dengan cara memotong bagian yang justru bikin agent berguna.

Kedua, model lokal. Ini bukan spekulasi ukuran, ini angka dari dokumentasi: model speech-to-text lokal bawaan OpenCrabs tersedia dalam ukuran Tiny 75 MB, Base 142 MB, Small 466 MB, dan Medium 1,5 GB. Satu model Medium saja langsung menghabiskan 73 persen RAM 2 GB sebelum aplikasi lain jalan, dan itu baru STT, belum model bahasa. Untuk model bahasa, jalur yang masuk akal di 2 GB adalah API, bukan bobot model di disk.

Di sinilah pemakaian API model lebih hemat daripada memaksa self-host. Kalau lo butuh akses model tanpa mengurus GPU atau RAM, gateway seperti NgodeAI bisa jadi jalur pintas: bebannya pindah ke sisi provider, VPS lo tinggal menjalankan agent dan menyimpan state.

Ketiga, build di server. Ini pengalaman langsung di mesin 3,8 GB: kompilasi crate Rust besar pernah kena OOM kill sekitar 2,5 GB, dan sejak itu build berat dipindah ke mesin lain atau dijalankan dengan pembatas CPU dan IO. Di 2 GB, kompilasi apa pun yang melibatkan linker dan beberapa job paralel adalah cara tercepat membuat agent lo mati di tengah malam. Build di CI, jalankan di VPS.

Bagaimana caranya biar 2 GB tidak mati?

Urutannya: pasang swap dulu, batasi yang bisa tumbuh, lalu ukur.

Swap bukan dosa di VPS kecil. Mesin contoh di atas punya 6 GB swap dan memakai 774 MB di antaranya, dan itu yang membuat proses bertahan saat spike. Untuk 2 GB, swap 2 GB sudah cukup sebagai bantalan, bukan sebagai tempat tinggal permanen. Perhatikan juga vm.swappiness: di mesin contoh nilainya 10, artinya kernel jarang memindahkan halaman ke disk sampai benar-benar perlu.

Soal overcommit, dokumentasi kernel menjelaskan tiga mode: 0 (heuristik default), 1 (selalu overcommit), dan 2 (tanpa overcommit, batasnya swap ditambah persentase RAM, default 50 persen). Mode 0 adalah default dan biasanya yang lo mau. Jangan tergoda mode 1 demi “biar alokasi selalu berhasil”, karena itu justru menunda kegagalan sampai OOM killer yang memutuskan, dan dia tidak memilih proses yang paling sopan.

Untuk container, Docker CLI menyediakan --memory dan --memory-swap, plus --oom-score-adj untuk mengatur prioritas saat krisis. Pasang batas memori di tiap service, jangan biarkan satu container memakan seluruh host. Agent yang di-limit 512 MB dan mati akan di-restart oleh systemd atau Docker, dan kegagalan yang terisolasi jauh lebih mudah didiagnosis daripada host yang freeze.

Terakhir, ukur, jangan menebak. free -m memberi gambaran kasar, ps -eo pid,rss,comm --sort=-rss menunjukkan siapa pemakan sebenarnya, dan Committed_AS di /proc/meminfo memberi tahu seberapa dekat lo ke batas commit. Di mesin contoh, angka commit sudah 74 persen dari limit, dan itu sinyal yang jauh lebih jujur daripada persentase RAM terpakai.

Kalau setelah semua itu beban tetap naik, naikkan kelas mesin, jangan tambal dengan mematikan hal yang bikin agent berguna. Untuk agent yang mulai pegang beberapa channel dan satu database produksi, kelas 2 vCPU 4 GB seperti lineup Alibaba Cloud ECS generasi Intel ke-9 lebih masuk akal daripada memaksa 2 GB menanggung semuanya.

Rekomendasi Tools & Layanan

  • Mulai kecil, naik kalau perlu: akun gratis Alibaba Cloud cukup untuk menguji agent teks sebelum lo bayar mesin yang lebih besar.
  • Model lewat API: NgodeAI untuk akses model tanpa memikirkan RAM dan GPU di VPS.
  • Agent-nya: OpenCrabs (binary Rust, satu proses, SQLite lokal) cocok untuk mesin kecil karena tidak membawa runtime Node.js.
  • Monitoring: netdata atau node_exporter plus alert sederhana di MemAvailable, bukan cuma di persentase RAM.
  • Pembatas: systemd MemoryMax= atau Docker --memory, dipasang sebelum insiden pertama, bukan sesudahnya.

FAQ

Apakah VPS 2 GB cukup untuk menjalankan agent AI 24 jam?

Cukup untuk satu agent teks dengan satu atau dua channel dan model lewat API. Tidak cukup kalau di mesin yang sama lo jalankan Docker Compose berisi beberapa service, browser headless, dan model lokal sekaligus.

Berapa RAM minimal untuk agent yang pakai Docker Compose?

Ikuti angka stack yang lo pakai, bukan feeling. Dokumentasi n8n untuk Compose dengan sandbox AI menyebut minimal 4 GB RAM dan 2 vCPU, jadi 2 GB berada di bawah syarat itu.

Lebih hemat mana, model lokal atau API?

Di 2 GB, API hampir selalu lebih hemat. Model STT lokal terkecil 75 MB, Medium 1,5 GB, dan model bahasa butuh jauh lebih besar. API memindahkan beban RAM ke provider dan menyisakan ruang untuk agent.

Apakah swap aman dipakai di VPS kecil?

Aman sebagai bantalan, berbahaya sebagai solusi permanen. Swap 2 GB dengan vm.swappiness rendah membantu melewati spike, tapi proses yang terus hidup di swap akan terasa lambat dan menutupi masalah alokasi.

Bagaimana cara tahu agent saya kehabisan RAM atau cuma lambat?

Cek MemAvailable dan Committed_AS di /proc/meminfo, lalu lihat RSS per proses. Kalau Committed_AS mendekati CommitLimit dan MemAvailable di bawah 200 MB, itu tekanan memori, bukan masalah latensi model.

Sumber

Catatan metodologi: angka RAM, swap, commit, dan RSS di artikel ini diukur pada satu VPS Ubuntu 24.04 (RAM 3,8 GB, swap 6 GB) pada 7 November 2026, bukan rata-rata industri. Beban kerja lo bisa berbeda, jadi ukur ulang di mesin lo sendiri sebelum memutuskan kelas VPS.

💼 Lowongan kerja

Lowongan DevOps & Cloud yang lagi buka

Diambil otomatis dari JobStreet, Kalibrr, dan bursa remote luar negeri. Diperbarui tiap 30 menit, plus filter lokasi Indonesia atau remote.

💬 Komentar (0)

Belum ada komentar. Jadilah yang pertama! 💬

Komentar yang memuat tautan, bahasa asing, atau aksara non-Latin ditahan dulu buat ditinjau.