Node.js-Module: PM2

Prozessmanager – Monitoring in der Softwareentwicklung
Kommentare

Wie geht’s uns denn heute? Der Speicherverbrauch ist leicht erhöht, die Plattenzugriffe sind im Rahmen und die CPU langweilt sich. Monitoring ist in der Softwareentwicklung immer ein Thema, vor allem, wenn die Applikation erst einmal live ist.

Für Node.js gibt es eine elegante Lösung, wenn es um die Verwaltung von Node.js-Prozessen geht: PM2. Zu den wichtigsten Features des PM2-Moduls zählen das automatische Neustarten von Node.js-Prozessen, die Aktualisierung von Prozessen mit nahezu keiner Downtime und das Monitoring der Prozesse hinsichtlich Speicherverbrauch, CPU oder Uptime.

Installation

Das PM2-Modul muss global installiert werden, da es sich dabei um einen Wrapper um Node.js selbst handelt. Es wird nicht nur Node.js, sondern auch io.js unterstützt. Die Applikation kann mit PM2 sowohl direkt auf der Kommandozeile als auch über ein separates Node.js-Skript ausgeführt werden.

Prozesssteuerung

Die wichtigsten Optionen sind start, restart, stop und delete. Damit lassen sich Prozesse starten, neu starten beziehungsweise beenden: $ pm2 start server.js.
Sobald ein Prozess mit dem oben gezeigten Kommando mit PM2 gestartet wurde, sorgt das Modul dafür, dass der Prozess immer verfügbar ist und startet ihn bei Bedarf neu. Alle Prozesse, die durch PM2 hochgefahren wurden, können dann auch mit diesem Kommando verwaltet werden. pm2 list zeigt sämtliche Prozesse an, mit denen gearbeitet werden kann (Listing 1).

$ pm2 list
App name | id | mode | pid   | status | restart | uptime | memory     | watching
server   | 0  | fork | 29735 | online  | 0      |   3m   |  25.207 MB | disabled

Prozessinformationen

Mit pm2 describe oder show erhält man detailliertere Informationen zum jeweiligen Prozess wie zum Beispiel den Status, das Arbeitsverzeichnis oder den Startzeitpunkt. Noch tiefer in den Prozess kann man mit dem Kommando pm2 monit eintauchen. Hier erfährt man mehr zum Speicher- und Prozessorressourcenverbrauch.

Logging

Die Ausgaben der Prozesse werden gesammelt und können in Echtzeit mit dem pm2 logs-Kommando betrachtet werden. Dieses Kommando verfügt über zahlreiche Konfigurationsparameter, mit denen das Aussehen der Logmeldungen beeinflusst werden kann.

Clustermodus

Interessant ist vor allem die Option –i, mit der ein Prozess im Clustermodus gestartet werden kann. Der Option folgt die Anzahl der Instanzen, die hochgefahren werden sollen. Mit dem pm2 scale-Kommando können zur Laufzeit weitere Instanzen zum Cluster hinzugefügt oder entfernt werden, und mit pm2 reload all werden sämtliche Instanzen neu gestartet. Wem dies zu gravierend ist, der kann stattdessen auch pm2 gracefulReload nutzen, um den Prozessen eine exit-Message zu senden.

Fazit

PM2 ist keine bahnbrechende Innovation, sondern vielmehr eine Sammlung sinnvoller Werkzeuge zur Prozessverwaltung. Gerade für den Produktivbetrieb ist die Kollektion aus automatischem Neustart der Serverprozesse und exzessiven Logging-Möglichkeiten ein gutes Hilfsmittel.

PHP Magazin

Entwickler MagazinDieser Artikel ist im PHP Magazin erschienen. Das PHP Magazin deckt ein breites Spektrum an Themen ab, die für die erfolgreiche Webentwicklung unerlässlich sind.

Natürlich können Sie das PHP Magazin über den entwickler.kiosk auch digital im Browser oder auf Ihren Android- und iOS-Devices lesen. In unserem Shop ist das Entwickler Magazin ferner im Abonnement oder als Einzelheft erhältlich.

Aufmacherbild: NOC / SOC Close-up – A close-up of a Network or Security Operations Center. A set of monitors shows monitoring statistics. von Shutterstock / Urheberrecht: Ton Snoei

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -