【问题标题】:Python - Running multiple python scripts that uses multiprocessing affects performance and errors out sometimesPython - 运行多个使用多处理的 python 脚本有时会影响性能和错误
【发布时间】:2021-01-24 22:20:53
【问题描述】:

我有一个 PYTHON 脚本,它使用多处理将数据从 DB2/Oracle 数据库提取到 CSV 并摄取到 Snowflake。当我运行这个脚本时,性能很好(在 75 秒内提取大数据集的源表)。所以我复制了这个python脚本并更改了输入参数(基本上不同的源表)。当我一起运行所有这些 python 脚本时,性能会受到影响(对于同一个表,它会在 100 秒内提取),有时我会看到错误“无法分配内存”。

我正在使用 Jupyter Nootebook,所有这些不同的 python 脚本都将不同的源表提取到 CSV 文件并将其保存在同一服务器位置。

我也在自己检查。但我们将不胜感激。

谢谢 巴拉

【问题讨论】:

    标签: python-3.x multiprocessing subprocess pool


    【解决方案1】:

    如果您运行多个使用multiprocessing 的脚本并同时写入同一个磁盘,您最终会在某个地方遇到瓶颈。

    可能是对数据库的并发访问、磁盘的写入速度、使用的内存量或 CPU 周期。这里的具体问题是什么,如果不进行测量就无法说出。

    但是例如与当前的 CPU 速度相比,向 HDD 写入内容非常慢。

    此外,当您运行多个使用 multiprocessing 的脚本时,您的工作进程可能比 CPU 的内核数量多。在这种情况下,会有一些工作进程一直在等待 CPU 时间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-19
      • 2015-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-06
      相关资源
      最近更新 更多