Mam kod za pomocą multi-proces tak:Czy możemy uruchomić program wieloprocesowy w oknie dokowanym?
import multiprocessing
from multiprocessing import Pool
pool = Pool(processes=100)
result = []
for job in job_list:
result.append(
pool.apply_async(
handle_job, (job)
)
)
pool.close()
pool.join()
Ten program robi ciężkie obliczenia na bardzo dużego zbioru danych. Dlatego potrzebujemy wielu procesów, aby obsłużyć pracę jednocześnie, aby poprawić wydajność.
Powiedziano mi, że do systemu hostingu jeden kontener dokowy to tylko jeden proces. Zastanawiam się więc, w jaki sposób mój multi-proces będzie obsługiwany w Dockerze?
Poniżej są moje obawy:
ponieważ pojemnik jest tylko jeden proces, będzie mój kod multi-proces stać wielowątkowości w tym procesie?
Czy wydajność spadnie? Ponieważ powodem, dla którego używam wielu procesów, jest równoległe wykonywanie pracy, aby uzyskać lepszą wydajność.
Próbuję zrozumieć twoje słowa. Oznacza to, że wielozadaniowość obsługuje dokowanie. Ale te procesy są izolowane przez przestrzeń nazw procesów, więc nie możemy ich zobaczyć poza kontenerem dokera, prawda? –
Izolacja procesu oznacza, że proces (y) wewnątrz kontenera nie może zobaczyć hosta, zobaczą tylko siebie działające. Ale host będzie mógł zobaczyć procesy uruchomione w kontenerze. 'docker run -it --rm busybox/bin/sh -c top', aby zobaczyć to w akcji. – BMitch