Was ist PM2?
PM2 (Process Manager 2) ist ein fortschrittlicher Prozessmanager für Node.js-Anwendungen, der integrierte Funktionen für Monitoring, automatischen Neustart und Lastverteilung bietet. Er ermöglicht es, JavaScript-Anwendungen in einer Production-Umgebung auszuführen, ihren Status zu überwachen, Leistungsmetriken zu sammeln und mehrere Prozesse gleichzeitig zu verwalten.
Wozu dient Monitoring?
In einer Production-Umgebung ist es entscheidend zu wissen, was mit der Anwendung passiert: ob sie abgestürzt ist, ob der Speicherverbrauch zu hoch ist oder ob Fehler auftreten. PM2 löst diese Aufgaben, indem es Folgendes bereitstellt:
- Automatischer Neustart bei Fehlern
- Sammlung von CPU- und RAM-Metriken
- Protokollierung von stdout/stderr
- Integrierte Web-Oberfläche für Monitoring (PM2 Plus)
Installation
Installieren Sie PM2 global über npm:
npm install -g pm2Hauptfunktionen
- Anwendung starten:
pm2 start app.js - Echtzeit-Monitoring:
pm2 monit - Prozessliste anzeigen:
pm2 list - Logs:
pm2 logs - Web-Panel:
pm2 plus(Registrierung erforderlich)
JavaScript-Codebeispiel (Node.js)
Erstellen Sie eine einfache Anwendung app.js:
const http = require('http');const server = http.createServer((req, res) => { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello from PM2!');});
server.listen(3000, () => { console.log('Server running on port 3000');});Starten Sie mit Monitoring:
pm2 start app.js --name my-apppm2 monitSie sehen in der Konsole Live-Diagramme der Speicher- und CPU-Auslastung sowie die Anzahl der Neustarts.
Wann verwenden
PM2 ist ideal geeignet für:
- Production-Server mit Node.js
- Microservice-Architekturen
- Anwendungen, die eine automatische Wiederherstellung nach Fehlern benötigen
- Situationen, in denen ein einfaches Monitoring ohne externe Dienste erforderlich ist
Fazit
PM2 ist ein Must-have-Tool für jeden Node.js-Entwickler, der einen stabilen Betrieb seiner Anwendungen sicherstellen möchte. Es ist einfach zu installieren, erfordert keine komplexe Konfiguration und bietet alle notwendigen Funktionen für das Monitoring und die Verwaltung von Prozessen.
Auch in der Bibliothek
Elasticsearch-Client für TypeScript: @elastic/elasticsearch
Caching in Java: Redis, Caffeine, Ehcache – ein vollständiger Leitfaden
Datenvalidierung in C++: Bibliotheken, Muster und Codebeispiele