【问题标题】:Matillion: How to identify performance bottleneckMatillion:如何识别性能瓶颈
【发布时间】:2022-01-06 12:24:00
【问题描述】:

我们正在一个基于 Tomcat 8.5 的 AWS EC2 实例 (CentOS) 上运行 Matillion (v1.54)。 到目前为止,我们已经开发了一些 ETL 作业,它们的执行需要相当长的时间(即长达数小时)。我们想加快工作的执行速度,我想知道如何识别瓶颈。

让我感到困惑的是m5.2xlarge EC2 实例(8 个 vCPU,32G RAM)和数据库(Snowflake)都不是很忙,而且似乎大部分时间都处于空闲状态(关于 CPU 和 RAM用法如top所示)。

我们的环境配置为使用多达 16 个并行连接。 我们还添加了 JVM 选项 -Xms20g -Xmx30g/etc/sysconfig/tomcat8 以确保 JVM 获得足够的 RAM 分配。

我们的 Matillion 作业执行转换并加载到许多表中,其中大部分可以(并且应该)并行完成。我们仍然看到,大部分任务都是按顺序处理的。

我们如何增强它?

【问题讨论】:

    标签: jvm snowflake-cloud-data-platform tomcat8 matillion


    【解决方案1】:

    由于 Matillion 服务器只是生成 SQL 语句并在 Snowflake 中运行它们,因此 Matillion 服务器不太可能成为瓶颈。您应该确保您的编排作业同时向 Snowflake 提交所有内容,并且您的流程中没有内置依赖项(除非需要)。 这些步骤将按顺序进行:



    这些步骤将并行完成(并且将取决于 Snowflake 仓库的规模来扩展):

    另外 - 尝试使用更高并发级别的 Alter Warehouse 组件

    【讨论】:

    • 我们的作业任务被建模为并行运行,正如您的示例作业所示
    • 您是否尝试过增加 MAX_CONCURRENCY_LEVEL 仓库参数?默认值为 8,但某些查询计为 >1
    • 是的,我们也尝试过调整该参数,但没有效果
    【解决方案2】:

    默认情况下,只有一个与 Snowflake 的 JDBC 连接,因此您的转换作业可能会因此而被强制串行。

    您可以尝试在“编辑环境”对话框下增加并发连接数,如下所示:

    有更多关于并发连接的信息here

    如果你这样做,需要避免的几件事是:

    • 事务(开始、提交等)将强制转换作业 再次串行运行
    • 如果您有参数化转换作业, 一次只能运行一个实例。有关该主题的更多信息是here

    【讨论】:

    • 是的,首先我们将并发连接数设置为 5,然后将其增加到 16,但没有任何效果。我们现在正在检查您关于事务和参数化转换作业的提示...
    猜你喜欢
    • 2017-02-02
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 2019-02-12
    • 2015-05-03
    • 2021-05-02
    • 1970-01-01
    • 2012-02-21
    相关资源
    最近更新 更多