tomcat内存不足报GC overhead limit exceeded和外部无法访问10080端口问题

Posted 左直拳

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tomcat内存不足报GC overhead limit exceeded和外部无法访问10080端口问题相关的知识,希望对你有一定的参考价值。

还不是很了解jvm。。。

一、内存不足

今天捣鼓了一下tomcat(tomcat8,windows版),服务是启动了,但等待了很长时间都无法访问。查看tomcat的报错日志,提示 GC overhead limit exceeded,超出GC开销限制。

服务器本身内存是够的,有32G之多,作为一台开发服务器,已经是豪华配置了。可能没有配置JVM参数,还是默认值,可能只有一、二百兆。因为tomcat里面挂了几个巨无霸应用,所以内存就不够了。

根据网上文章的提示,修改tomcat的运行参数。

1、打开tomcat所在目录/bin/catalina.bat,略过注释后,在第一行写上:

set JAVA_OPTS=-Xms4096M   -Xmx4096M -XX:MaxPermSize=4096M

这个参数也不知道是否科学,反正是4G。重新启动tomcat后问题搞定。

一个服务器只有一个JVM吧,所以我猜测不管是在tomcat里设置,还是在外部设置,应该都是一样的,对服务器上所有JAVA应用都会起作用。

参考文章:
GC overhead limit exceeded,tomcat修改jvm内存

二、端口10080

我又发现,tomcat设置端口为10080,启动之后,服务器本机可以访问,但在局域网外部,却无法访问。关闭服务器的防火墙也不行。查了查,原来是谷歌浏览器将这个端口屏蔽了。用IE是可以的。谷歌浏览器之所以屏蔽,说是为了防范什么NAT滑流攻击。

不明觉厉。谷歌不但屏蔽了10080,还屏蔽了好几个端口。它的报错提示,的确有不安全端口的英文编号,但中文却鬼扯什么网页暂时无法连接,或者已经迁移。谷歌敢这么明目张胆,简单粗暴地封禁端口,而又缺乏必要且明确的提示,是赤裸裸的一种傲慢。

以上是关于tomcat内存不足报GC overhead limit exceeded和外部无法访问10080端口问题的主要内容,如果未能解决你的问题,请参考以下文章

hbase+hive+impala 报gc overhead limit exceeded

Android Studio编译报错“java.lang.OutOfMemoryError: GC overhead limit exceeded

eclipse一直报An internal error occurred during: "Building workspace". GC overhead limit excee

java.lang.OutOfMemoryError: GC overhead limit exceeded

spark 读取mongodb失败,报executor time out 和GC overhead limit exceeded 异常

mongdb报OutOfMemoryError: Java heap space或OutOfMemoryError: GC overhead limit exceeded的解决方法