Я параллельно запускаю скрипт python3 на удаленном сервере Linux с помощью многопроцессорного пула, который выглядит примерно так:
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 рабочих процессов показывают процент загрузки процессораболее 100%, обычно 500% -600%.Я знаю, что это показано в процентах от одного процессора, что означает, что каждый работник использует несколько ядер.На сервере всего 32 ЦП (4 сокета, 4 ядра на сокет, 2 потока на ядро), но мне разрешено использовать только 6 (сервер используется несколькими людьми).
Есть ли способограничить каждый рабочий процесс одним процессором?