Почему воркфлоу тормозит: основные причины
Медленный воркфлоу n8n — почти всегда результат одного из трёх: последовательных HTTP-запросов там, где можно параллельно; отсутствия кэша для повторяющихся данных; избыточной обработки больших массивов в Code Node.
1. Параллельное выполнение вместо последовательного
Если воркфлоу делает 5 HTTP-запросов один за другим по 500 мс — итого 2,5 секунды. При параллельном — 500 мс. Используйте SplitInBatches с "Execute Each Item in Parallel" или разделяйте поток на несколько веток.
// Code Node: подготовка батчей
const items = $input.all();
const chunkSize = 10;
const chunks = [];
for (let i = 0; i < items.length; i += chunkSize) {
chunks.push(items.slice(i, i + chunkSize).map(i => i.json));
}
return chunks.map(chunk => ({ json: { batch: chunk } }));
2. Кэширование ответов API
Если воркфлоу запрашивает одни и те же справочные данные — используйте Static Data как кэш:
// Code Node: кэш через Static Data
const cache = this.getWorkflowStaticData("node");
const now = Date.now();
if (!cache.data || (now - cache.timestamp) > 3600000) {
cache.data = $input.first().json;
cache.timestamp = now;
}
return [{ json: cache.data }];
3. Батчинг при работе с большими массивами
Обработка 10 000 записей в одном Code Node — путь к таймауту. Разбивайте на батчи по 100–500 записей через SplitInBatches. Для БД используйте LIMIT/OFFSET вместо загрузки всей таблицы.
4. Concurrency в .env
N8N_CONCURRENCY_PRODUCTION_LIMIT=20
EXECUTIONS_PROCESS=main
Для высоких нагрузок переходите на Queue Mode с Redis и несколькими воркерами — позволяет горизонтально масштабировать обработку.
5. Минимизация данных между нодами
n8n передаёт полные объекты между нодами. Обрезайте лишние поля в начале воркфлоу:
// Оставить только нужные поля
return $input.all().map(item => ({
json: { id: item.json.id, email: item.json.email, amount: item.json.amount }
}));
6. Замена Code Node встроенными нодами
Code Node медленнее встроенных. Для маппинга — Set Node, фильтрации — Filter Node, агрегации — Aggregate Node. Они работают на нативном уровне без overhead JS-интерпретатора.
7. Таймауты HTTP-запросов
Зависший HTTP-запрос блокирует воркфлоу. Устанавливайте timeout 10–30 секунд, Retry On Fail 2–3 попытки. Глобально: N8N_DEFAULT_REQUEST_TIMEOUT=30000
8. Queue Mode для production
Queue Mode + Redis + несколько воркеров — правильная архитектура для нагруженных систем. При добавлении воркера производительность масштабируется линейно.
Часто задаваемые вопросы
Как ускорить медленный воркфлоу n8n?
Включите параллельное выполнение HTTP-запросов, обрежьте лишние поля данных между нодами, добавьте кэш для повторяющихся API-вызовов, замените Code Node встроенными Set/Filter/Aggregate нодами там, где это возможно.
Что такое Queue Mode в n8n?
Режим работы, при котором задания складываются в очередь Redis, а несколько воркер-процессов обрабатывают их параллельно. Позволяет обрабатывать тысячи одновременных выполнений и масштабироваться добавлением воркеров.
Сколько параллельных воркфлоу может обрабатывать n8n?
По умолчанию 10 параллельных исполнений. Настраивается через N8N_CONCURRENCY_PRODUCTION_LIMIT. Для высоких нагрузок используйте Queue Mode с Redis — масштабирование без ограничений.