2017-02-28 81 views
0

我的作業中有一個基本的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文件。 –

回答

0

以我的經驗,在正常情況下,這些步驟都不是CPU密集型的。我能想到的兩個原因是:

嘗試格式化XML時會窒息。通過檢查表格輸入步驟中的選項懶惰轉換和文本文件輸出步驟中的快速數據轉儲(無格式)可以解決該問題。那麼它應該只是通過串流數據。

另一個是,你有巨大的XML和CPU使用率實際上是垃圾收集,因爲Pentaho內存不足。通過增加最大堆空間(啓動腳本中的-Xmx1024m選項)來測試此操作。