Slow http node and browser memory issue

Im self hosting n8n and the http node is running very slow, I tested the cloud version and it only takes a few seconds for the same request, im also interested in knowing how I can increase the memory limit in my browser so I can handle larger amounts of data at once, right now im receiving the ran out of memory message when my computer shows that 50% of my ram is still available.

are you downloading files using the http request node?
by default n8n keeps files (binary data) in memory. however you can change it to store the downloaded content as files on the filesystem (which is what cloud instances do).

Im writing the data to airtable. But even when sending just a few requests it takes significantly longer on my self hosted instance.

So If i store the downloaded content as files on the filesystem instead of in memory, I dont have to worry about weather or not my browser can handle large files? how can I do this?

Can you please try setting N8N_DEFAULT_BINARY_DATA_MODE to filesystem, as documented here.

I added it It did not solve the issue. here are my settings

version: '3.8'

volumes:
  db_storage:
  n8n_storage:

services:
  postgres:
    image: postgres:11
    restart: always
    environment:
      - POSTGRES_USER
      - POSTGRES_PASSWORD
      - POSTGRES_DB
      - POSTGRES_NON_ROOT_USER
      - POSTGRES_NON_ROOT_PASSWORD
    volumes:
      - db_storage:/var/lib/postgresql/data
      - ./init-data.sh:/docker-entrypoint-initdb.d/init-data.sh
    healthcheck:
      test: ['CMD-SHELL', 'pg_isready -h localhost -U ${POSTGRES_USER} -d ${POSTGRES_DB}']
      interval: 5s
      timeout: 5s
      retries: 10

  n8n:
    image: docker.n8n.io/n8nio/n8n
    restart: always
    environment:
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_HOST=postgres
      - DB_POSTGRESDB_PORT=5432
      - DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
      - DB_POSTGRESDB_USER=${POSTGRES_NON_ROOT_USER}
      - DB_POSTGRESDB_PASSWORD=${POSTGRES_NON_ROOT_PASSWORD}
      - N8N_DEFAULT_BINARY_DATA_MODE=filesystem
      - EXECUTIONS_MODE=regular
    ports:
      - 5678:5678
    links:
      - postgres
    volumes:
      - n8n_storage:/home/node/.n8n
    depends_on:
      postgres:
        condition: service_healthy

I dont think this is a memory issue. I tried sending the exact same request as a test, sent 10 get requests and received around 10 mb of data. it took 2 seconds on the cloud instance and close to 9 seconds on my self hosted instance.

Hey @Trash,

This might sound a bit off but can you set the execution mode to main (I am not sure where you found regular). When making this change make sure you use the down and up instead of a restart so it can kick in properly.

Which version of n8n are you running and where are you self hosting it?

1 Like

im using the latest version and self hosting it on my personal computer with docker.

I got the execution mode from Execution modes and processes | n8n Docs

I cant set it to main, i get the following error

Error: executions.mode: must be one of the possible values: withpostgres-n8n-1 | [“regular”,“queue”]: value was “main”

SOLVED after setting EXECUTIONS_PROCESS=main and RESTARTING docker

1 Like

My final issue is how I can increase the memory limit so my browser can handle larger amounts of data at once.

Increasing the memory available to n8n wouldn’t help the browser if you are hitting a browser limit, what makes you think you have a memory issue that will help us work out which approach is needed.

I missed that it was executions mode you had set and not executions process, glad that solved it.