Coo*_*ook 5 python web-crawler multiprocessing python-3.x
我有一个简单的程序来运行 8 个进程,它通过使用多处理显着减少了脚本运行时间,但是,我不确定应该将多少进程放入最大 CPU 利用率。目前我的 CPU 是 6 核,只有 1 个物理 CPU,因为它是 VPS。:
def spider1():
def spider2():
def spider3():
def spider4():
def spider5():
def spider6():
def spider7():
def spider8():
if __name__ == '__main__':
p1 = multiprocessing.Process(target=spider1,)
p2 = multiprocessing.Process(target=spider2,)
p3 = multiprocessing.Process(target=spider3,)
p4 = multiprocessing.Process(target=spider4, )
p5 = multiprocessing.Process(target=spider5, )
p6 = multiprocessing.Process(target=spider6, )
p7 = multiprocessing.Process(target=spider7, )
p8 = multiprocessing.Process(target=spider8, )
p1.start()
p2.start()
p3.start()
p4.start()
p5.start()
p6.start()
p7.start()
p8.start()
Run Code Online (Sandbox Code Playgroud)
如果要使用 cpu 的数量来计算要生成的进程数,请使用 cpu_count 来查找 cpu 的数量,
psutil.cpu_count()
Run Code Online (Sandbox Code Playgroud)
但是使用 CPU 利用率来计算生成的进程数可能是一种更好的方法,要检查 CPU 利用率,您可以执行以下操作,
import psutil
psutil.cpu_times_percent(interval=1, percpu=False)
Run Code Online (Sandbox Code Playgroud)
这将为您提供 cpu 使用情况,例如您可以使用该信息来决定是否要生成一个新进程。关注内存和交换也可能是一个好主意。
我认为这个答案可能很有用, 在 python 多处理中限制总 CPU 使用率
| 归档时间: |
|
| 查看次数: |
3068 次 |
| 最近记录: |