Python Multiprocessing: Как узнать процессор и память, используемые дочерним процессом - PullRequest
0 голосов
/ 19 октября 2019

У меня есть код, который будет порождать 2 дочерних процесса:

P1 = Process(target=worker, args=(), name="p1")
P1.start()
P1_pid = P1.pid

P2 = Process(target=<a function that will monitor the CPU and Memory used by P1>, args=(P1_pid), name="P2")
P2.start()

По сути, мне нужно найти способ создания второго дочернего процесса таким образом, чтобы целевой работник P2 принял pidдочерний процесс P1 и получает процессор и память, которые занимает дочерний процесс P1. Мне нужно сделать это без использования psutil.

Имеет ли многопроцессорный модуль что-то подобное встроенному? Я искал это, но не мог найти это.

Я также попробовал следующее, где ниже - логика в рабочем задании P2:

cmd = "ps -p <P1_pid> -o %cpu,%mem"
MyOut = subprocess.Popen([cmd], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True )
stdout, stderr = MyOut.communicate()
print(stdout)

Выше напечатано следующее:

b' %CPU %MEM\n'

КакойКазалось, не имеет смысла, потому что если я запускаю команду ps -p .. на обычной оболочке Unix, то она показывает использование памяти 0,1.

Есть идеи?

...