python - Postgres 累积磁盘 I/O
问题描述
我遇到了 postgres 阻塞我的 SSD (256MB) 的问题,因为它会随着时间的推移而累积。
我的应用程序有一个表,caseA - caseB
其中包含我事先创建的对。fetchall()
使用并行工作人员,每个具有自己连接的工作人员运行一个选择查询 -根据caseA-caseB pair
其接收到的主键(大约需要 5 秒)连接其他几个表。
然后它对数据进行一些分析并对copy_from
其他两个表进行分析。想法是,磁盘使用率随着时间的推移而升高,积压达到峰值,400s
最终会使我的系统停止。
我不明白为什么会发生这种情况以及如何预防?我们正在谈论总共 6500 万个案例对。一个结果表将具有相同数量的行,但另一个将有更多 - 数亿条记录。
我尝试过Semaphor
控制有多少工作人员可以下载/上传、增加work_mem
等shared_buffers
。但这似乎只是推迟了问题。
经过几次运行后,我为所有工作人员实施了睡眠时间,但这似乎没有帮助,这就是为什么我认为问题必须在 postgres 中的某个地方。
非常感谢您的帮助。
解决方案
推荐阅读
- javascript - sweetalert2 文本输入,在 R Shiny 中使用 javascript 验证文本
- http - 除了多路复用和服务器推送之外,是什么让 http/2 比 http/1 更快?
- verilog - 一定范围的延迟
- mysql - 如何导出 SQL 数据库?
- php - 如何使用 laravel 为不同的客户使用不同的数据库?
- angular - 多次调用 Angular Validator 函数
- java - 在 CorDapp 上本地部署节点时出现异常 - 节点信息生成
- javascript - 猫头鹰旋转木马导航箭头造型
- linux - linux开发VFS时需要内存映射吗
- asp.net-web-api - 使用 webapi-2 查找调用 api 的 url