我有一个python script
里面用psutil.popen()以shell的方式执行另外一个program, 如下
proc = psutil.Popen(
"/bin/<some_program>",
stdout=sys.stdout,
stderr=subprocess.STDOUT,
shell=True,
executable="/bin/csh",
)
那么 我该如何得知, 这个proc用了多少个CPU或Thread来执行?
查了一下大多是cpu_times() 或 cpu_percent(), 这些function return的都是使用率
而不是"几个"
想得知用了多少个CPU或Thread, 目的是想知道popen执行的那个program
它的peak_cpu是多少
目前是用以下方式得知用的thread个数, 但不确定这个数字正不正确,
因为跑出来都是1
peak_cpu = subprocess.check_output(f"ls /proc/{proc.pid}/task | wc -l",
shell=True).decode("utf-8")
while proc.poll() is None:
cpu = subprocess.check_output(f"ls /proc/{proc.pid}/task | wc -l",
shell=True).decode("utf-8")
if cpu > peak_cpu:
peak_cpu = cpu
谢谢