kettle工具导出excel报错内存溢出的解决方法GC overhead limit exceeded

一般情况下,我们会执行这样的语句调用kjb

$kettle_home/kitchen.sh -file=$file_path/tongji.kjb

在执行sh tongji.sh时,有时数据量不是很大,只有几万条就会报错

java.lang.OutOfMemoryError: GC overhead limit exceeded

我当时也是很困惑,几个同事查了百度后改了

 data-integration/spoon.sh文件

 PENTAHO_DI_JAVA_OPTIONS="-Xmx1024m -XX:MaxPermSize=2048m"

可是结果还是一样报错,后来你我们想了很多笨的办法,增加kjb,ktr,分多个sheet,并没有解决,后来单个kjb写不同的excel文件解决了,可是这样要分很多excel给领导看,显然是不合理的。后来终于被我找到了

就是vi data-integration/kitchen.sh

if [ -z "$JAVAMAXMEM" ]; then
 #JAVAMAXMEM="512"
JAVAMAXMEM="1024"

就是它,以前写的是512,改成1024就解决问题了。

开始还以为是excel的问题呢,大家都知道excel低版本还可以放65536条呢,高版本的100万是可以放的。所以排除excel,就把问题放在kettle的配置参数就对了。问题解决。




JSP访问没反应了:javax.servlet.ServletException: java.lang.OutOfMemoryError: GC overhead limit exceeded

03-01

程序做压力测试一段时间后出现异常,同时所有jsp均访问不了了,就是请求直接不到jsp那里去了,但是经过检测,tomcat分配的内存一直是没有用完的,各位大哥帮忙给小弟支支招阿,多谢了!rn邮箱地址:snk321cq@163.comrn异常如下:rnorg.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.OutOfMemoryError: GC overhead limit exceededrn org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:486)rn org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398) rn org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)rn org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)rn javax.servlet.http.HttpServlet.service(HttpServlet.java:803)rnjavax.servlet.ServletException: java.lang.OutOfMemoryError: GC overhead limit exceededrn org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:850)rn org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)rn org.apache.jsp.nw_jsp._jspService(nw_jsp.java:223)rn org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)rn javax.servlet.http.HttpServlet.service(HttpServlet.java:803)rn org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)rn org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)rn org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)rn javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

急!!android编译遇到java.lang.OutOfMemoryError: GC overhead limit exceeded错误

05-30

在编译android2.3的工程时遇到错误rn[color=#FF0000]UNEXPECTED TOP-LEVEL ERROR:rnjava.lang.OutOfMemoryError: GC overhead limit exceededrn at java.util.HashSet.(HashSet.java:125)rn at com.android.dx.dex.code.StdCatchBuilder.getCatchTypes(StdCatchBuilder.java:97)rn at com.android.dx.dex.code.DalvCode.getCatchTypes(DalvCode.java:166)rn at com.android.dx.dex.file.CodeItem.addContents(CodeItem.java:126)rn at com.android.dx.dex.file.MixedItemSection.prepare0(MixedItemSection.java:280)rn at com.android.dx.dex.file.Section.prepare(Section.java:214)rn at com.android.dx.dex.file.DexFile.toDex0(DexFile.java:486)rn at com.android.dx.dex.file.DexFile.toDex(DexFile.java:196)rn at com.android.dx.command.dexer.Main.writeDex(Main.java:427)rn at com.android.dx.command.dexer.Main.run(Main.java:180)rn at com.android.dx.command.dexer.Main.main(Main.java:157)rn at com.android.dx.command.Main.main(Main.java:89)rnmake: *** [out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/noproguard.classes-with-local.dex] Error 3[/color]rn编译环境为ubuntu10.10rnrn在网上搜索了一下解决方法rn[color=#0000FF]二、解释:rnJDK6新增错误类型。当GC为释放很小空间占用大量时间时抛出。rn一般是因为堆太小。导致异常的原因:没有足够的内存。rnrn三、解决方案:rn1、查看系统是否有使用大内存的代码或死循环。rn2、可以添加JVM的启动参数来限制使用内存:-XX:-UseGCOverheadLimit[/color]rn但是不知道如何去添加JVM启动参数rn哪位大虾能指点一下,给一个详细的流程。rnrnPS:相同的代码,在另一台配置一样的机器上可以编译通过,见鬼了..rn在线等rnrn

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试