Langsung ke konten
AI, VPS, Hosting, Container Apps & DomainAI Gateway
Kembali ke Blog
n8n

Cara Mengatasi n8n Lambat di VPS dan Penyebab Workflow Tertunda

Pelajari cara mengatasi n8n lambat di VPS. Simak penyebab eksekusi tertunda, konfigurasi queue mode Redis, dan optimasi database agar workflow lancar.

Cara Mengatasi n8n Lambat di VPS dan Penyebab Workflow Tertunda

Ketika menjalankan otomatisasi workflow yang mulai kompleks, salah satu kendala yang sering ditanyakan kepada tim support kami di Flaz Cloud adalah cara mengatasi n8n lambat di vps. Masalah ini umumnya ditandai dengan eksekusi workflow yang tertahan dalam status running, webhook pihak ketiga yang mengalami timeout, atau antarmuka n8n yang terasa berat saat dibuka di browser.

n8n dibangun di atas runtime Node.js yang menggunakan model single-threaded event loop. Jika terdapat satu workflow yang memproses data berukuran besar atau menjalankan komputasi berat, proses utama n8n dapat terblokir sementara sehingga antrean workflow lain terhambat. Artikel ini membahas penyebab teknis kenapa n8n melambat di server VPS serta langkah praktis yang dapat dilakukan untuk mengatasinya.

Penyebab Utama n8n Menjadi Lambat pada Server VPS

Sebelum melakukan penyesuaian konfigurasi server, penting untuk mengetahui komponen apa yang menjadi penyebab penurunan performa pada instance n8n Anda.

Beban Pemrosesan Data Besar pada Node Code JavaScript

Node Code atau Function di n8n memungkinkan Anda menulis skrip JavaScript murni untuk memanipulasi data. Masalah performa sering muncul ketika skrip tersebut digunakan untuk memproses array data yang berisi ribuan baris, atau melakukan operasi regex kompleks pada teks panjang.

Karena skrip dieksekusi langsung di dalam proses Node.js utama, pemrosesan data intensif ini akan memakan waktu CPU dan menghentikan pemrosesan event loop lainnya. Selama proses tersebut berjalan, n8n tidak dapat menerima webhook baru atau menjalankan trigger terjadwal, yang pada akhirnya memicu penyebab error 500 pada server VPS karena waktu tunggu respons habis.

Antrean Webhook yang Membebani Single Process

Secara default, n8n berjalan dalam mode reguler (single instance). Pada mode ini, satu proses aplikasi menangani webhook masuk, mengeksekusi logika workflow, membaca dan menulis database, serta menampilkan UI web.

Ketika webhook masuk secara bertubi-tubi dari beberapa integrasi sekaligus, kapasitas antrean memori akan cepat terisi. Jika proses ini kehabisan resource memori, server akan mulai mengalami latency tinggi sebelum akhirnya proses aplikasi dihentikan oleh sistem operasi. Konsep penerimaan data ini perlu dipahami melalui panduan cara menggunakan webhook di n8n untuk otomatisasi API agar volume trafik masuk dapat diperkirakan sejak awal.

Ukuran Database Eksekusi yang Terlalu Besar

Setiap kali workflow selesai dijalankan, n8n menyimpan seluruh payload data masuk, data antar-node, dan data keluar ke dalam database. Jika fitur pembersihan tidak diaktifkan, tabel database seperti execution_entity dapat membengkak hingga puluhan gigabyte.

Ketika tabel tersebut terlalu besar, setiap query pembacaan riwayat pada dashboard atau penyimpanan status eksekusi baru akan membutuhkan operasi I/O disk yang tinggi. Hal ini menyebabkan penggunaan hard disk server meningkat drastis dan memperlambat seluruh proses aplikasi.

Langkah Teknis untuk Mempercepat Eksekusi n8n

Berikut adalah beberapa penyesuaian konfigurasi yang dapat Anda terapkan pada VPS untuk mengatasi keterlambatan eksekusi workflow.

Memisahkan Mode Eksekusi Menggunakan Redis dan Worker

Jika volume eksekusi n8n Anda sudah mencapai ribuan per hari, beralihlah dari mode reguler ke mode antrean (Queue Mode). Pada konfigurasi ini, beban kerja n8n dibagi menjadi beberapa komponen:

  1. Main Instance: Bertanggung jawab menampilkan UI dan mengelola konfigurasi workflow.
  2. Webhook Process: Bertugas menerima request webhook masuk secara cepat dan langsung memasukkannya ke antrean Redis.
  3. Worker Instances: Mengambil pekerjaan dari antrean Redis dan mengeksekusi workflow secara independen.

Dengan Queue Mode, proses penerimaan webhook tidak akan terpengaruh meskipun ada worker yang sedang memproses data berat. Anda dapat menjalankan beberapa worker sekaligus sesuai jumlah core CPU yang tersedia di VPS Anda.

Membatasi Penyimpanan Data Riwayat Eksekusi

Langkah paling sederhana namun berdampak langsung pada kecepatan database adalah membatasi data yang disimpan. Tambahkan konfigurasi berikut pada environment variable container n8n Anda:

EXECUTIONS_DATA_PRUNE=true
EXECUTIONS_DATA_MAX_AGE=72
EXECUTIONS_DATA_PRUNE_MAX_COUNT=5000
EXECUTIONS_DATA_SAVE_ON_ERROR=all
EXECUTIONS_DATA_SAVE_SUCCESS=none

Konfigurasi di atas mengatur agar n8n hanya menyimpan data dari eksekusi yang mengalami error (EXECUTIONS_DATA_SAVE_ON_ERROR=all), sementara eksekusi yang sukses tidak disimpan detail datanya (EXECUTIONS_DATA_SAVE_SUCCESS=none). Pengaturan ini secara signifikan mengurangi beban penulisan I/O disk ke database.

Menggunakan Sub-Workflow untuk Memecah Data Besar

Alih-alih memproses 10.000 data baris dalam satu workflow panjang, pecah data tersebut ke dalam kelompok-kelompok kecil (batch). Anda dapat menggunakan node Split In Batches yang dipadukan dengan pemanggilan sub-workflow melalui node Execute Sub-Workflow.

Pendekatan ini mencegah pemakaian RAM berlebih pada satu thread proses. Untuk menjaga agar beban kerja server tetap seimbang, Anda dapat membaca panduan cara mengatasi penggunaan CPU tinggi pada VPS.

Kapan Anda Perlu Menambah Resource Server untuk n8n

Trik konfigurasi perangkat lunak memiliki batas fisik. Jika optimasi database dan pemisahan workflow sudah dilakukan tetapi n8n masih sering lambat, hal tersebut menandakan bahwa kebutuhan komputasi sudah melampaui kapasitas perangkat keras server.

Anda perlu mempertimbangkan upgrade spesifikasi VPS jika menemui indikator berikut:

  1. Rata-rata CPU load server terus berada di atas 80% saat jam operasional.
  2. Pemakaian RAM mencapai 90% dan server mulai menggunakan swap memory secara intensif.
  3. Waktu respons Nginx reverse proxy ke n8n sering melebihi 30 detik.

Memindahkan instance n8n ke server dengan core prosesor lebih cepat dan penyimpanan berbasis NVMe akan menyelesaikan bottleneck I/O secara langsung.

Menjalankan n8n yang Stabil pada Infrastruktur Flaz Cloud

Menjalankan otomatisasi workflow yang responsif membutuhkan infrastruktur server dengan kecepatan baca-tulis disk yang tinggi dan kestabilan CPU yang konsisten.

Bagi Anda yang ingin langsung menggunakan n8n tanpa harus repot mengatur konfigurasi Docker, database, dan SSL secara mandiri, Flaz Cloud menyediakan layanan cloud apps n8n yang siap pakai. Jika Anda ingin membangun arsitektur Queue Mode menggunakan Docker Compose dengan Redis dan PostgreSQL mandiri, pilihan server VPS NVMe kami menyediakan akses root penuh dengan performa storage NVMe RAID-10 untuk mendukung kebutuhan otomatisasi Anda.

Jika Anda ingin berdiskusi mengenai arsitektur server yang tepat untuk workflow n8n Anda, tim support kami di Flaz Cloud siap membantu memeriksa kebutuhan resource server Anda.

FAQ Teknis

1. Mengapa eksekusi workflow n8n sering berstatus pending atau running terlalu lama?

Kondisi ini umumnya terjadi karena single-threaded event loop pada Node.js terblokir oleh operasi komputasi berat, seperti pemrosesan skrip JavaScript pada node Code atau operasi database yang lambat. Akibatnya, eksekusi workflow berikutnya harus mengantre hingga proses yang berjalan selesai.

2. Apa keuntungan menggunakan n8n Queue Mode dengan Redis?

Queue Mode memisahkan tugas penerima webhook dari proses eksekusi workflow. Webhook yang masuk akan langsung disimpan ke memori Redis tanpa menunggu workflow selesai, kemudian diproses oleh worker secara terpisah. Hal ini mencegah webhook mengalami timeout saat server sedang sibuk.

3. Bagaimana cara mengetahui jika node Code JavaScript menjadi penyebab n8n lambat?

Anda dapat memeriksa log container n8n atau waktu eksekusi masing-masing node di tab Execution History. Jika durasi eksekusi melonjak drastis pada node Code tertentu, periksa apakah terdapat perulangan (loop) tanpa jeda, manipulasi string berukuran besar, atau ekspresi regex yang tidak efisien.

4. Apakah menambah CPU core otomatis membuat n8n berjalan lebih cepat?

Pada mode default n8n reguler, penambahan CPU core tidak otomatis mempercepat eksekusi karena Node.js berjalan pada satu core thread saja. Namun, jika Anda menggunakan Queue Mode atau menjalankan multiple worker, setiap core CPU tambahan dapat dialokasikan untuk satu instance worker, sehingga kapasitas eksekusi paralel meningkat.

5. Berapa ukuran database n8n yang wajar untuk lingkungan produksi?

Ukuran database n8n di lingkungan produksi sebaiknya dijaga di bawah 5 GB hingga 10 GB. Jika ukuran database melebihi angka tersebut, proses query status dan riwayat eksekusi akan memakan I/O disk yang tinggi. Mengaktifkan fitur data pruning otomatis adalah cara paling efektif untuk menjaga ukuran database tetap terkendali.

Siap memulai?

Buat akun dalam 1 menit. Tanpa kartu kredit.