如何为并行Python3 Postgresql11 Multiprocessing Psycop2g连接池应用程序设计高性能的设置?

我目前正在收集大约1000个不同时间段(1、5、15、30和60分钟)的加密交易对的烛台数据,并以相应的间隔将其插入到使用Python 3-Psycopg2的Postgresql 11表中。这非常有效且及时。然后,我开始从每个交易对的最近200条记录中进行选择,处理大约40个指标值。到目前为止,我还没有找到该应用程序的性能设置。

我尝试了几种方法: 1.使用Psycopg2 ThreadedConnectionPool进行Python多线程处理-可行,但不能及时交付结果-大约需要45秒以上。 2. Python多重处理实现真正的并发操作。我还没有找到在Postgresql中使用连接池的方法(我找到了这个未回答的条目:Sharing a postgres connection pool between python multiproccess)。因此,我在每个进程中打开和关闭一个连接,该进程立即耗尽了Postgresql服务器提供的所有连接(即使将其设置为1000 max)。 3.我试图使用在插入时触发的服务器端功能。它可以工作,但是即使我已扩展到最多8个CPU和32GB内存,我也无法调整服务器的性能。完成该过程需要几分钟。

除了其他市场或社交媒体信息,我打算在多个时间范围内将收集的资产增加到几千种。似乎带有用于Postgresql的连接池的Python多处理功能提供了最佳的可伸缩性,但到目前为止,这似乎是不可能的。另一方面,我确信周围有很多项目具有相似或更大的工作量并且能够及时执行。什么是正确的方法?

moon5422 回答:如何为并行Python3 Postgresql11 Multiprocessing Psycop2g连接池应用程序设计高性能的设置?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3129993.html

大家都在问