Benchmarking n8n Workflow Execution: Throughput, Memory Overhead, and p99 Latency Under Load
When evaluating n8n-io/n8n for production workflow automation, the critical question isn't feature count—it's whether the runtime can sustain concurrent executions without degrading response times or exhausting memory. We ran a three-phase load test against a self-hosted n8n instance (v1.23.0, Node.js 20.11, 4-core/8GB VPS) to establish baseline metrics for workflow throughput, memory stability, and latency distribution.
Test Topology
We deployed a load harness using k6 v0.48 with the following configuration:
// k6-n8n-benchmark.js import http from 'k6/http' ; import { check , sleep } from 'k6' ;
export const options = { stages : [ { duration : '2m' , target : 50 } , // Ramp-up { duration : '5m' , target : 50 } , // Sustained { duration : '2m' , target : 100 } , // Spike { duration : '3m' , target : 100 } , // Hold spike { duration : '2m' , target : 0 } , // Ramp-down ] , thresholds : { http_req_duration : […