【发布时间】:2022-07-28 11:45:06
【问题描述】:
我在我的 python 应用程序中使用 pika 1.1 和 graph-tool 3.4。它使用来自 RabbitMQ 的任务,然后使用图形工具构建图形,然后运行一些计算。
一些计算,例如介数,会占用大量的cpu功率,使cpu使用率长时间达到100%。有时rabbitmq连接断开,导致任务从头开始。
即使计算在单独的进程中运行,我的猜测是在 cpu 加载 100% 期间,它找不到任何机会向 rabbitmq 发送心跳,这导致连接终止。这并不总是发生,这表明它可能会不时发送心跳。这只是我的猜测,我不确定还有什么可能导致这种情况。
我尝试使用nice(19) 降低计算过程的优先级,但没有成功。我假设它不会影响图形工具生成的进程,它自己并行工作。
由于只是一行代码,graph.calculate_betweenness(... 我没有地方手动发送心跳或减慢执行以创造心跳的机会。
- 我对因为 cpu 超级忙而未发送心跳的猜测是否正确?
- 如果是,我该如何处理这种情况?
【问题讨论】:
标签: python-3.x rabbitmq pika graph-tool