Wie nutzen Sie Multicore-CPUs in Ihren PHP / MySQL-Anwendungen?
Ich verwalte eine benutzerdefinierte CMS-ähnliche Anwendung.
Bei jeder Übermittlung eines Dokuments werden mehrere Aufgaben ausgeführt, die grob in die folgenden Kategorien unterteilt werden können:
MySQL-Abfragen.Analysieren von HTML-Inhalten.Aktualisierung des Suchindex.Kategorie 1 enthält Aktualisierungen verschiedener MySQL-Tabellen, die sich auf den Inhalt eines Dokuments beziehen.
Kategorie 2 beinhaltet das Parsen von HTML-Inhalten, die in MySQL LONGTEXT-Feldern gespeichert sind, um einige automatische Ankertag-Transformationen durchzuführen. Ich vermute, dass für diese Aufgabe viel Rechenzeit aufgewendet wird.
Kategorie 3 enthält Aktualisierungen eines einfachen MySQL-basierten Suchindex mit nur wenigen Feldern, die dem Dokument entsprechen.
Alle diese Aufgaben müssen ausgeführt werden, damit die Dokumentübermittlung als abgeschlossen gilt.
Der Rechner, auf dem sich diese Anwendung befindet, verfügt über Dual-Quad-Core-Xeon-Prozessoren (insgesamt 8 Kerne). Jedes Mal, wenn ein Dokument übermittelt wird, ist der gesamte PHP-Code, der ausgeführt wird, auf einen einzelnen Prozess beschränkt, der auf einem der Kerne ausgeführt wird.
Meine Frage:
Welche Schemata haben Sie verwendet, um die Verarbeitungslast Ihrer PHP / MySQL-Webanwendungen auf mehrere CPU-Kerne aufzuteilen? Meine ideale Lösung würde im Grunde genommen ein paar Prozesse erzeugen, sie parallel auf mehreren Kernen ausführen lassen und dann blockieren, bis alle Prozesse abgeschlossen sind.
Verwandte Frage:
Was ist Ihr Lieblingswerkzeug für die Erstellung von PHP-Leistungsprofilen?