Конфигурация ecosystem.config.js для PM2 (Cluster Mode на все ядра CPU)
Эталонный файл ecosystem.config.js для менеджера процессов PM2: режим кластера instances='max', автоперезапуск по лимиту памяти max_memory_restart и логи.
Интерактивный генератор под ваши параметры
Параметры подставляются в код в реальном времени
/var/www/example.com/ecosystem.config.js
// ecosystem.config.js
module.exports = {
apps: [{
name: 'web-app',
script: './node_modules/next/dist/bin/next',
args: 'start',
cwd: '/var/www/example.com',
instances: 'max',
exec_mode: 'cluster',
autorestart: true,
max_memory_restart: '1G',
env_production: {
NODE_ENV: 'production',
PORT: 3000
},
log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
error_file: '/var/log/pm2/app-error.log',
out_file: '/var/log/pm2/app-out.log',
merge_logs: true
}]
};
Разбор ключевых директив конфигурации
Техническое обоснование директив и их прямое влияние на процессор (CPU), оперативную память (RAM) и дисковый ввод-вывод (NVMe I/O).
| Директива / Блок | Рекомендуемое значение | Зачем нужно и системное влияние (CPU / RAM / I-O) |
|---|---|---|
instances: 'max' |
'max' | Запускает по одному воркеру на каждое доступное ядро процессора VDS. |
exec_mode: 'cluster' |
'cluster' | Включает встроенный балансировщик нагрузки Node.js cluster module. |
max_memory_restart: '1G' |
'1G' | Автоматически перезапускает воркер при превышении 1 GB памяти. |
Рекомендуемые системные требования VDS под этот стек
Расчет минимальной и оптимальной конфигурации виртуального сервера для стабильной работы без сбоев.
Оптимальный сайзинг: 2-4 vCPU, 4 GB RAM, Node.js VDS
Timeweb Cloud
2 CPU / 4 GB NVMe
Рекомендуемые ресурсы
2-4 vCPU /
4 GB RAM /
30 GB NVMe
Selectel
2 vCPU / 4 GB RAM
Рекомендуемые ресурсы
2-4 vCPU /
4 GB RAM /
30 GB NVMe
Beget
Turbo 4 GB
Рекомендуемые ресурсы
2-4 vCPU /
4 GB RAM /
30 GB NVMe
Онлайн-утилиты SysKit для проверки этого сервера
Протестируйте корректность применения конфигурации прямо сейчас в один клик.
Частые ошибки при настройке и их решение (FAQ)
Типовые проблемы вебмастеров и сисадминов при внедрении данной конфигурации.
Как сохранить автозапуск PM2 после перезагрузки сервера?
Выполните `pm2 save && pm2 startup`.
Как посмотреть логи запущенной службы в реальном времени?
Выполните команду `journalctl -u <имя_сервиса>.service -f -n 100`.
Что делать после редактирования .service файла?
Всегда выполняйте `systemctl daemon-reload` перед перезапуском службы `systemctl restart <имя_сервиса>`.
Рекомендуемые смежные конфигурации
Дополнительные рецепты и калькуляторы для полной оптимизации данного серверного стека.