Python - 运行多个使用多处理的 python 脚本有时会影响性能和错误
Posted
技术标签:
【中文标题】Python - 运行多个使用多处理的 python 脚本有时会影响性能和错误【英文标题】:Python - Running multiple python scripts that uses multiprocessing affects performance and errors out sometimes 【发布时间】:2021-01-24 22:20:53 【问题描述】:我有一个 PYTHON 脚本,它使用多处理将数据从 DB2/Oracle 数据库提取到 CSV 并摄取到 Snowflake。当我运行这个脚本时,性能很好(在 75 秒内提取大数据集的源表)。所以我复制了这个python脚本并更改了输入参数(基本上不同的源表)。当我一起运行所有这些 python 脚本时,性能会受到影响(对于同一个表,它会在 100 秒内提取),有时我会看到错误“无法分配内存”。
我正在使用 Jupyter Nootebook,所有这些不同的 python 脚本都将不同的源表提取到 CSV 文件并将其保存在同一服务器位置。
我也在自己检查。但我们将不胜感激。
谢谢 巴拉
【问题讨论】:
【参考方案1】:如果您运行多个使用multiprocessing
的脚本并同时写入同一个磁盘,您最终会在某个地方遇到瓶颈。
可能是对数据库的并发访问、磁盘的写入速度、使用的内存量或 CPU 周期。这里的具体问题是什么,如果不进行测量就无法说出。
但是例如与当前的 CPU 速度相比,向 HDD 写入内容非常慢。
此外,当您运行多个使用 multiprocessing
的脚本时,您的工作进程可能比 CPU 的内核数量多。在这种情况下,会有一些工作进程一直在等待 CPU 时间。
【讨论】:
以上是关于Python - 运行多个使用多处理的 python 脚本有时会影响性能和错误的主要内容,如果未能解决你的问题,请参考以下文章