Heim  >  Artikel  >  Backend-Entwicklung  >  Warum wird der Speicher des Hauptprozesses immer größer, wenn swoole in mehreren Prozessen verwendet wird?

Warum wird der Speicher des Hauptprozesses immer größer, wenn swoole in mehreren Prozessen verwendet wird?

WBOY
WBOYOriginal
2016-12-01 00:56:431863Durchsuche

Derzeit muss das Unternehmen eine Funktion zur Echtzeitanalyse des Datenflusses implementieren, die auf der zweiten Ebene genau sein muss. Ursprünglich hatte ich geplant, Swoole Task zur Implementierung eines Task-Services zu verwenden, aber derzeit gibt es keine entsprechende Funktion Maschine zum Ausführen des Servers, daher habe ich mich vorerst für die Verwendung des Multiprozesses von Swoole entschieden. Während des Prozesses wird ein übergeordneter Prozess angetroffen und die Speichernutzung steigt weiter an das Problem?
Die Codelogik besteht darin, 6 swoole_processes im übergeordneten Prozess zu erstellen, Aufgaben jede Sekunde über swoole_timer an inaktive untergeordnete Prozesse zu verteilen und den Prozess als beschäftigt zu markieren. Nachdem der untergeordnete Prozess die Aufgabe abgeschlossen hat, kommuniziert er über a mit dem übergeordneten Prozess Durch die Kommunikation zwischen Vater und Sohn wird der übergeordnete Prozess darüber informiert, dass der übergeordnete Prozess einen Pool von untergeordneten Prozessen verwaltet oder eine bestimmte Anzahl von Verarbeitungsaufgaben überschreitet, benachrichtigt der übergeordnete Prozess den Prozess, um einen neuen untergeordneten Prozess zu zerstören und zu starten. Die Codelogik ist ungefähr so, aber das Problem besteht darin, dass die Speichernutzung des übergeordneten Prozesses allmählich zunimmt. Wie können die Swoole-Meister das Problem lösen? Liegt es daran, dass der übergeordnete Prozess diesen ähnlichen untergeordneten Prozesspool verwaltet? Bitte klären Sie mich auf

Antwortinhalt:

Derzeit muss das Unternehmen eine Funktion zur Echtzeitanalyse des Datenflusses implementieren, die auf der zweiten Ebene genau sein muss. Ursprünglich hatte ich geplant, Swoole Task zur Implementierung eines Task-Services zu verwenden, aber derzeit gibt es keine entsprechende Funktion Maschine zum Ausführen des Servers, daher habe ich mich vorerst für die Verwendung des Multiprozesses von Swoole entschieden. Während des Prozesses wird ein übergeordneter Prozess angetroffen und die Speichernutzung steigt weiter an das Problem?
Die Codelogik besteht darin, 6 swoole_processes im übergeordneten Prozess zu erstellen, jede Sekunde Aufgaben über swoole_timer an inaktive untergeordnete Prozesse zu verteilen und den Prozess als beschäftigt zu markieren. Nachdem der untergeordnete Prozess die Aufgabe abgeschlossen hat, kommuniziert er über a mit dem übergeordneten Prozess Durch die Kommunikation zwischen Vater und Sohn wird der übergeordnete Prozess darüber informiert, dass der übergeordnete Prozess einen Pool von untergeordneten Prozessen verwaltet oder eine bestimmte Anzahl von Verarbeitungsaufgaben überschreitet, benachrichtigt der übergeordnete Prozess den Prozess, um einen neuen untergeordneten Prozess zu zerstören und zu starten. Die Codelogik ist ungefähr so, aber das Problem besteht darin, dass die Speichernutzung des übergeordneten Prozesses allmählich zunimmt. Wie können die Swoole-Meister das Problem lösen? Liegt es daran, dass der übergeordnete Prozess diesen ähnlichen untergeordneten Prozesspool verwaltet? Bitte klären Sie mich auf

Der übergeordnete Prozess weist einen Speicherverlust auf, der dadurch verursacht wird, dass einige globale Variablenarrays Speicher nicht sofort freigeben. Überprüfen Sie Ihren Code.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn