Что такое PM2?
PM2 (Process Manager 2) — это мощный менеджер процессов для Node.js приложений. Он не только запускает и перезапускает приложения, но и предоставляет встроенные средства для мониторинга производительности, управления кластеризацией и сбора метрик в реальном времени.
Зачем нужен PM2?
При развертывании production-приложений на Node.js возникают задачи: автоматический перезапуск при сбое, балансировка нагрузки между ядрами CPU, просмотр логов и отслеживание использования памяти/CPU. PM2 решает все эти задачи из коробки, заменяя собой несколько инструментов (nodemon, forever, cluster).
Установка
npm install -g pm2Глобальная установка позволяет запускать PM2 из любого места в системе.
Основные функции мониторинга
- pm2 list — отображает все запущенные процессы с PID, статусом, потреблением памяти и CPU.
- pm2 monit — интерактивный терминальный монитор, показывающий метрики каждого процесса в реальном времени.
- pm2 show <id> — детальная информация о конкретном процессе: uptime, количество рестартов, версия Node.js, переменные окружения.
- pm2 logs — просмотр объединенных логов всех приложений или конкретного процесса.
- pm2 status — краткий статус всех приложений.
Пример кода (Node.js)
Создайте файл app.js:
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello from monitored app!');
});
server.listen(3000, () => {
console.log('Server running on port 3000');
});Запустите с мониторингом:
pm2 start app.js --name my-app --watch
pm2 monitФлаг --watch автоматически перезапускает приложение при изменении файлов. Команда pm2 monit откроет панель, где вы увидите загрузку CPU, память, количество запросов и uptime.
Когда использовать
PM2 идеален для production-сред: веб-серверы (Express, Koa), API-сервисы, боты, микросервисы. Он незаменим, когда нужно:
- Обеспечить 24/7 работу приложения
- Автоматически перезапускать после сбоя
- Масштабировать приложение на все ядра процессора
- Собирать метрики для дальнейшего анализа
- Централизованно управлять логами
PM2 не подходит для одноразовых скриптов или локальной разработки (для этого лучше nodemon).
Заключение
PM2 — это стандарт де-факто для мониторинга Node.js приложений. Он прост в установке, предоставляет богатый набор метрик и легко интегрируется с системами оповещения (через плагины). Начните с pm2 monit, чтобы в реальном времени видеть здоровье вашего приложения.
Также в библиотеке
Работа с CSV в Rust: библиотеки csv, serde и эффективная обработка данных
Авторизация и аутентификация в Kotlin: JWT, Spring Security и Ktor
Очереди задач в Swift: GCD, OperationQueue и Combine для iOS/macOS
Mongoose Paginate для JavaScript (Node.js): полное руководство с примерами