jvm Matillion:如何识别性能瓶颈

1dkrff03  于 2022-11-07  发布在  其他
关注(0)|答案(2)|浏览(133)

我们正在基于Tomcat 8.5的AWS EC2示例(CentOS)上运行Matillion(v1.54)。我们现在已经开发了一些ETL作业,它们的执行需要相当长的时间(即,长达几个小时)。我们希望加快作业的执行速度,我想知道如何识别瓶颈。
让我困惑的是,m5.2xlarge EC2示例(8个vCPU,32G RAM)和数据库(Snowflake)都不会变得非常忙碌,而且似乎大部分时间都处于空闲状态(关于top所示的CPU和RAM使用情况)。
我们的环境被配置为使用多达16个并行连接。我们还添加了JVM选项-Xms20g -Xmx30g/etc/sysconfig/tomcat8,以确保JVM获得足够的RAM分配。
我们的Matiillion作业执行转换和加载到许多表中,其中大多数可以(也应该)并行完成。
我们如何加强这一点?

falq053o

falq053o1#

默认情况下,只有一个到Snowflake的JDBC连接,因此您的转换作业可能会因此而被强制串行化。
您可以尝试在“编辑环境”对话框下增加并发连接的数量,如下所示:

有关并发连接的更多信息here
如果您这样做,要避免的几件事是:

  • 事务(开始、提交等)将强制转换作业再次以串行方式运行
  • 如果您有一个 * 参数化的 * 转换作业,则一次只能运行它的一个示例。
wh6knrhe

wh6knrhe2#

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

这些步骤将并行执行(并将取决于Snowflake仓库的规模):

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

相关问题