Lösungen und Tipps von den mpex Profis

mpex Techblog

21.07.2020

Perl Gearman richtig geforked

Gearman ist eine Server/Client/Worker Anwendung, mit der sich Aufgaben/Tasks über beliebig viele Worker (Server) verteilen lassen. Implementierungen gibt es in diversen Programmiersprachen, darunter auch Perl und PHP.

Gearman ist eine Server/Client/Worker Anwendung, mit der sich Aufgaben/Tasks über beliebig viele Worker (Server) verteilen lassen. Implementierungen gibt es in diversen Programmiersprachen, darunter auch Perl und PHP.

Gewöhnlich führen die Worker Funktionen aus. Wie in Scripten üblich, tun sie dies sequentiell.
Sollen mehrere Aufgaben parallel von den Workern bearbeitet werden, muss man sich selbst um ein Forking kümmern.

Beim Forking in Perl ist Vorsicht geboten. Forkt man einzelne Tasks innerhalb einer Worker Funktion ab, kann es schnell zu Fehlermeldungen, wie z.B. malformed Magic oder eof kommen, was bis zum Crash von Server und Worker führen kann.

Die Erfahrung zeigt, dass es sinnvoller ist, das Forking schon auf Worker-Ebene durchzuführen. Das bedeutet, man forkt z.B. einen Prozess ab und startet in diesem den Worker.
#!/usr/bin/perl $pid = fork(); if($pid == 0) { use Gearman::Worker; $worker = new Gearman::Worker; $worker->register_function('test', sub () { echo "Test\n"; }); $worker->work() while 1; exit(0); }

Dies führt zu einer stabileren Umgebung.

Etwas fortgeschrittener ist die Nutzung von Gearman::Driver, das wir uns aber noch nicht angeschaut haben.

Kann mpex weiterhelfen?

Mit über 20 Jahren Erfahrung im Bereich Managed Hosting haben wir ein umfangreiches Repertoire an Problemlösungen angesammelt, die uns beim Betrieb von Serverumgebungen auf höchstem technischen Niveau geholfen haben. Unsere Systeme bauen komplett auf Open-Source-Technologien auf. Damit sind wir flexibel und können bei technischen Schwierigkeiten direkt selbst eingreifen. Analog zur Open-Source-Idee haben wir uns für diesen Techblog entschieden, um unsere Expertise und Problemlösungen mit dir zu teilen. Dazu zählen Technologien wie Bacula, Debian, Pacemaker, Puppet, diverse allgemeine Serverprobleme und noch vieles darüber hinaus. Wenn du mehr über unsere individuellen Business-Lösungen erfahren und dich als Admin auf deine Kernkompetenzen konzentrieren möchtest, sprich uns einfach an. Wir realisieren das Managed Hosting deiner Anwendung und kümmern uns in Zukunft um all solche Probleme.

Zum Kontaktformular
mpex GmbH
Weitere Blog Artikel
12.08.2020

Pacemaker – Problem: Fehlermeldung bei Ausführung von resize2fs gegen ein kürzlich vergrößertes Dateisystem

Fehlermeldung z.B. "Das Dateisystem ist schon xxxx Blöcke groß. Nichts zu tun!" bzw. "The filesystem is already xxxx blocks long. Nothing to do!"

Artikel lesen
05.08.2020

Pacemaker – Problem: Dienst lässt sich nicht stoppen

Pacemaker Dienst lässt sich nicht stoppen und hängt scheinbar ewig fest. Gibt es weitere aktive Ressourcen oder ist die Node noch aktiv?

Artikel lesen

Kontaktformular - Sprechen Sie uns an!

Sprechen Sie uns an!

Sie wollen mehr über uns und unsere Leistungen erfahren? Lernen Sie uns im persönlichen Gespräch kennen!

Telefon: +49 30 780 97 180
E-Mail: info@mpex.de