您的位置:首页 > 其它

【Kettle从零开始】第十一弹之Kettle性能调优介绍

2014-03-11 18:23 148 查看
       性能高优在整个工程中是非常重要的,也是非常有必要的。但有的时候我们往往都不知道如何对性能进行调优。其实性能调优主要分两个方面:一方面是硬件调优,一方面是软件调优。本弹主要是介绍Kettle工具性能调优。
关于Kettle性能调优方法有以下几点:

1、 
调整JVM大小进行性能优化,修改Kettle定时任务中的Kitchen与Pan脚本中。

修改脚本代码片段

REM  ******************************************************************

REM ** Set java runtime options                                     **

REM ** Change 512m to higher values in  case you run out of memory.  **

REM  ******************************************************************

 

set OPT=-Xmx512m -cp %CLASSPATH%  -Djava.library.path=libswt\win32\ -DKETTLE_HOME="%KETTLE_HOME%"  -DKETTLE_REPOSITORY="%KETTLE_REPOSITORY%"  -DKETTLE_USER="%KETTLE_USER%"  -DKETTLE_PASSWORD="%KETTLE_PASSWORD%" 
-DKETTLE_PLUGIN_PACKAGES="%KETTLE_PLUGIN_PACKAGES%"  -DKETTLE_LOG_SIZE_LIMIT="%KETTLE_LOG_SIZE_LIMIT%"

参数参考:

-Xmx1024m:设置JVM最大可用内存为1024M。
  -Xms512m:设置JVM促使内存为512m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。
  -Xmn2g:设置年轻代大小为2G。整个JVM内存大小=年轻代大小
+ 年老代大小 +
持久代大小
。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。
  -Xss128k:设置每个线程的堆栈大小。JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。更具应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。

样例:OPT=-Xmx1024m
-Xms512m

 

2、 
调整提交(Commit)记录数大小进行优化

如修改RotKang_Test01中的“表输出”组件中的“提交记录数量”参数进行优化,Kettle默认Commit数量为:1000,可以根据数据量大小来设置Commit
size:1000~50000。



(图11.0)
 
3、 
调整记录集合里的记录数



(图11.1)
 
4、 
调整SQL查询脚本是否走索引(非常关键性的优化),这里我就不多讲关于SQL脚本优化。
 
以上几点是我使用Kettle这几年的对性能方面优化总结,可提供给大家进行参考。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息