Kra*_* Li 12 multithreading multiprocessing docker
我有一些使用多进程的代码,如下所示:
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()
Run Code Online (Sandbox Code Playgroud)
该程序正在对非常大的数据集进行大量计算.因此,我们需要多进程来同时处理工作以提高性能.
我被告知,对于托管系统,一个docker容器只是一个进程.所以我想知道如何在Docker中处理我的多进程?
以下是我的担忧:
由于容器只是一个过程,我的多进程代码在这个过程中会变成多线程吗?
性能会下降吗?因为我使用多进程的原因是同时完成工作以获得更好的性能.
Docker包含命名空间的进程ID,并完全支持内核运行多个进程。在容器内部,您可以运行ps来查看隔离的进程列表(通常只是您的shell和ps命令)。
对于运行单个应用程序的docker的描述是将应用程序隔离技术与更熟悉的OS虚拟化工具分开,在那里您将在后台启动Web服务器,邮件服务器,ssh守护程序等。
请注意以下几点:
tini您可以运行一个应用程序作为入口点来清理它们(tini github repo)。| 归档时间: |
|
| 查看次数: |
13305 次 |
| 最近记录: |