我的工作中有一个基本的Pentaho转换,它通过“表输入”从SQL Server中的存储过程读取5,000条记录。步。该数据有5列,其中一列是XML列。在“表输入”之后' a'文本文件输出'步骤运行,它从一个列和xml数据中保存路径,以保存为字段选项卡中提供的唯一字段。然后,通过来自“表输入”的流数据,在给定位置创建5,000个XML文件。到'文本文件输出'。
执行此作业时,它在作业持续时间内以99-100%的CPU利用率运行,然后降低到约5-10%的CPU利用率。有没有办法通过Pentaho或命令提示符来控制CPU利用率?这是在Windows Server 2012 R2计算机上运行的,具有4GB RAM和Intel Xeon CPU E5-2680 v2 @ 2.8 GHz处理器。我已经看到内存使用情况可以通过Spoon.bat得到控制,但还没有找到任何关于控制CPU使用情况的在线信息。
答案 0 :(得分:0)
根据我的经验,在正常情况下,这些步骤都不是CPU密集型的。我能想到的两个原因是:
窒息尝试格式化XML。这可以通过检查表输入步骤中的选项延迟转换和文本文件输出步骤中的快速数据转储(无格式化)来解决。然后它应该只通过流式传输字符串数据。
另一个是你拥有巨大的XML并且CPU使用率实际上是垃圾收集,因为Pentaho的内存不足。通过增加最大堆空间(启动脚本中的 -Xmx1024m 选项)对此进行测试。