Ich habe Code, der mehrere Prozesse verwendet:
%Vor%Dieses Programm führt umfangreiche Berechnungen für sehr große Datenmengen durch. Daher müssen wir mehrere Prozesse gleichzeitig ausführen, um die Leistung zu verbessern.
Mir wurde gesagt, dass ein Andock-Container für das Hosting-System nur ein Prozess ist. Also frage ich mich, wie mein Multi-Prozess in Docker gehandhabt wird?
Hier sind meine Bedenken:
Da der Container nur ein Prozess ist, wird mein Multi-Prozess-Code dabei Multi-Threading?
Wird die Leistung nachlassen? Weil ich Multi-Prozess verwenden, um Job gleichzeitig zu erledigen, um bessere Leistung zu erzielen.
Docker enthält Namespace-Prozess-IDs und vollständige Unterstützung für die Ausführung mehrerer Prozesse durch den Kernel. Innerhalb eines Containers können Sie ps ausführen, um die isolierte Prozessliste zu sehen (die oft nur Ihre Shell und der ps-Befehl ist).
Die Beschreibung von docker zum Ausführen einer einzelnen Anwendung besteht darin, die Anwendungsisolierungstechnologie von den bekannteren Betriebssystemvirtualisierungswerkzeugen zu trennen, in denen Sie den Webserver, den Mailserver, den ssh-Daemon usw. im Hintergrund starten würden.
Ein paar Worte der Vorsicht:
tini
-Anwendung, die Sie als Ihren Einstiegspunkt ausführen können, um diese zu bereinigen, wenn dies ein Problem ist ( tini github repo ). Tags und Links multithreading docker multiprocessing