让kettle的执行速度飞起来
博客专区 > sucre 的博客 > 博客详情
让kettle的执行速度飞起来
sucre 发表于3年前
让kettle的执行速度飞起来
  • 发表于 3年前
  • 阅读 11347
  • 收藏 16
  • 点赞 1
  • 评论 6

移动开发云端新模式探索实践 >>>   

摘要: 继续优化kettle,添加xmn和修改日志输出级别

在前一篇文章xms/xmx/xss在kette中的调优设置中,我对kettle进行了一次优化,这次我们再一次进行优化,这次效果非常明显,这次优化有两部分:一、修改jvm添加xmn,二、修改日志输出级别

在Java TM Performance一书中,有这样一段话:

-Xmn is convenient to size both the initial and maximum size of the young generation
space. It is important to note that if-Xms and -Xmx are not set to the same value and
-Xmn is used, a growth or contraction in the Java heap size will not adjust the size of
the young generation space. The size of the young generation space will remain constant with any growth or contraction of the Java heap size. Therefore, -Xmn should
be used only when -Xms and -Xmx are set to the same value.

好了,看看我的修改结果

# ******************************************************************
# ** Set java runtime options                                     **
# ** Change 512m to higher values in case you run out of memory   **
# ** or set the PENTAHO_DI_JAVA_OPTIONS environment variable      **
# ** (JAVAMAXMEM is there for compatibility reasons)              **
# ******************************************************************

if [ -z "$JAVAMAXMEM" ]; then
  JAVAMAXMEM="16384"
fi

if [ -z "$PENTAHO_DI_JAVA_OPTIONS" ]; then
    PENTAHO_DI_JAVA_OPTIONS="-Xms${JAVAMAXMEM}m -Xmx${JAVAMAXMEM}m -Xmn6144m -Xss1024m"
fi

xmx为物理内存的1/4,xmn为xmx为3/8

在用kitchen.sh调用*.job文件时,在调用命令后面添加

-level:Error

在默认的情况下,kettle输出的是基本日志,如果访问十几万的数据库,那基本日志的输出也会达到5、6百兆,这样严重影响了执行效率,所以修改kettle的日志级别为error级,只输出错误日志即可。

以上优化完成后,遍历十几万数据库进行数据统计,只需要2小时55分钟,爽啊,快吧,如果硬件足够好,那还可以再提高不少呢!

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 30
博文 359
码字总数 206722
评论 (6)
debug_gao
请问,如何能提高‘file input’的速度
sucre

引用来自“debug_gao”的评论

请问,如何能提高‘file input’的速度
你看看file input里面有没有缓存的设置
Dilly
遍历十几万数据库进行数据统计,需要2小时55分钟,不算很快吧?
sucre

引用来自“Dilly”的评论

遍历十几万数据库进行数据统计,需要2小时55分钟,不算很快吧?
那多长时间算快呢?您遍历十几万多长时间能处理完?
clark911

引用来自“Dilly”的评论

遍历十几万数据库进行数据统计,需要2小时55分钟,不算很快吧?
这个确实慢了。如果把转换的部分放到数据库去做呢,没必要把所有事情都交给kettle,对吧
sucre

引用来自“Dilly”的评论

遍历十几万数据库进行数据统计,需要2小时55分钟,不算很快吧?

引用来自“clark911”的评论

这个确实慢了。如果把转换的部分放到数据库去做呢,没必要把所有事情都交给kettle,对吧
如何将转换的部分放到数据库中呢?你是指将转换放到input的sql中解决?
×
sucre
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: