将python多处理池中的worker限制为每个CPU 1个

时间:2019-05-03 18:29:58

标签: python python-3.x python-multiprocessing cpu-usage

我正在使用多处理池在远程linux服务器上并行运行python3脚本,如下所示:

import multiprocessing

def somefunc(day):
    #do something
    print(day)


if __name__ == '__main__':
    pool = multiprocessing.Pool(6) #6 worker processes
    days = range(1,32) #iterate over 31 days (1 month)
    pool.map(somefunc, days)
    pool.close()
    pool.join()

当我运行top时,所有6个工作进程都显示CPU百分比超过100%,通常为500%-600%。我知道这显示为单个CPU的百分比,这意味着每个工作人员都在使用多个内核。该服务器总共有32个CPU(4个插槽,每个插槽4个核心,每个核心2个线程),但是我只能使用6个(服务器由几个人共享)。

是否可以将每个工作进程限制为1个CPU?

0 个答案:

没有答案