python多处理。队列内存消耗&;释放

python多处理。队列内存消耗&;释放,python,python-2.7,queue,Python,Python 2.7,Queue,我正在python应用程序中使用。它将具有不同cpu密集型作业的两个进程连接起来。在峰值时,当消费过程缓慢时,队列将在峰值时间增长到2.5GB左右(尽管这可能只持续一小时)。在第二个进程中没有CPU增长的情况下,整个应用程序在大约100MB的驻留内存中愉快地运行 然而,由于这是一个长时间运行的过程,我想知道是否有可能释放队列手动分配的内存,比如说可能每小时释放一次内存?如何通过maxsize参数限制队列?谢谢Janne。我并不特别想这样做,我将有其他代码更动态地控制进入队列的数量。我的问题是,一

我正在python应用程序中使用。它将具有不同cpu密集型作业的两个进程连接起来。在峰值时,当消费过程缓慢时,队列将在峰值时间增长到2.5GB左右(尽管这可能只持续一小时)。在第二个进程中没有CPU增长的情况下,整个应用程序在大约100MB的驻留内存中愉快地运行


然而,由于这是一个长时间运行的过程,我想知道是否有可能释放队列手动分配的内存,比如说可能每小时释放一次内存?

如何通过
maxsize
参数限制队列?谢谢Janne。我并不特别想这样做,我将有其他代码更动态地控制进入队列的数量。我的问题是,一旦队列不再需要很大,内存就不会减少。如果不是的话,这似乎是一个巨大的疏忽。Python会自动释放内存,但还有一种方法称为另一种方法,即生产者将实际数据存储在数据库或普通文件中,并且只在队列中传递id号/文件名。这应该可以降低Python进程的内存消耗。谢谢大家。然而,这是一个长期运行的生产过程。在理想情况下重新启动或可以重新启动之前,它运行5个工作日。此外,它还需要极高的吞吐量(我每周在一个应用程序实例中消耗100亿次网络事件),因此在关键路径中放置一个DB不是一个好主意