gpt4 book ai didi

python - 在 Python 中获取繁忙的 CPU 数量

转载 作者:太空狗 更新时间:2023-10-30 02:04:03 26 4
gpt4 key购买 nike

我正在编写一个 multiprocessing 例程以在具有大量 CPU 的服务器上运行。但是,服务器有多个用户,其使用情况可能会有所不同。所以我想根据当前负载调整正在使用的处理器数量。

  • 有没有办法估计 Python 中当前繁忙的 CPU 数量?我只找到了multiprocessing.cpu_count()
  • 奖励问题:是否可以在事件期间更改 multiprocessing.Pool(processes=no_cpus),以防一段时间后服务器上的负载发生变化?

最佳答案

有很多并发症...

  • 您无法确定哪些 CPU 正忙

进程(和线程)由 Linux 内核在任何 CPU 上调度。甚至确定“当前 CPU”也很尴尬——参见 How can I see which CPU core a thread is running in?

  • multiprocessing.Pool 旨在启动 N 个 worker,它们“永远”运行。每个都从队列中接受一个任务,做一些工作,然后输出数据。 Pool 不会改变大小。

两个建议:

19:05:07 up 4 天,20:43,3 个用户,平均负载:0.99, 1.01, 0.82

最后三个数字是最后一分钟、五分钟和十五分钟的“平均负载”。考虑使用第一个数字来平衡您的应用程序。

  • 考虑让您的应用程序在完成每项工作后执行 time.sleep(factor)

因此,您可以在系统繁忙(高平均负载)时增加该因子,并在系统较空闲(低负载;即冲浪)时缩短延迟。池保持相同大小。

关于python - 在 Python 中获取繁忙的 CPU 数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24733005/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com