Pentaho Kettle - CPU利用率100%,用于表格输入和文本文件输出

问题描述:

我的作业中有一个基本的Pentaho转换,通过“Table Input”步骤从SQL Server的存储过程读取5,000条记录。该数据有5列,其中之一是XML列。在'Table Input'之后,运行一个'文本文件输出'步骤,该步骤将保存路径从一个列和xml数据保存为字段选项卡中提供的唯一字段。然后,通过将数据从“表格输入”流式传输到“文本文件输出”,在给定位置创建5,000个XML文件。Pentaho Kettle - CPU利用率100%,用于表格输入和文本文件输出

执行此作业时,它在作业期间以99-100%的CPU利用率运行,然后降低至约5-10%的CPU利用率。有没有办法通过Pentaho或命令提示符来控制CPU利用率?这是在Windows Server 2012 R2计算机上运行的,该计算机具有4 GB RAM,并带有Intel Xeon CPU E5-2680 v2 @ 2.8 GHz处理器。我已经看到,可以通过Spoon.bat控制内存使用情况,但在控制CPU使用率方面没有发现任何联机内容。

+0

[Resource Governor?](https://msdn.microsoft.com/en-us/library/bb933866.aspx) –

+0

感谢您的链接,但只有一半的问题是从SQL Server端读取数据。 Pentaho另一半正在编写XML文件。 –

以我的经验,在正常情况下,这些步骤都不是CPU密集型的。我能想到的两个原因是:

尝试格式化XML时会窒息。通过检查表格输入步骤中的选项懒惰转换和文本文件输出步骤中的快速数据转储(无格式)可以解决该问题。那么它应该只是通过串流数据。

另一个是,你有巨大的XML和CPU使用率实际上是垃圾收集,因为Pentaho内存不足。通过增加最大堆空间(启动脚本中的-Xmx1024m选项)来测试此操作。