还不是很了解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
- 1
这个参数也不知道是否科学,反正是4G。重新启动tomcat后问题搞定。
一个服务器只有一个JVM吧,所以我猜测不管是在tomcat里设置,还是在外部设置,应该都是一样的,对服务器上所有JAVA应用都会起作用。
参考文章:
GC overhead limit exceeded,tomcat修改jvm内存
二、端口10080
我又发现,tomcat设置端口为10080,启动之后,服务器本机可以访问,但在局域网外部,却无法访问。关闭服务器的防火墙也不行。查了查,原来是谷歌浏览器将这个端口屏蔽了。用IE是可以的。谷歌浏览器之所以屏蔽,说是为了防范什么NAT滑流攻击。
不明觉厉。谷歌不但屏蔽了10080,还屏蔽了好几个端口。它的报错提示,的确有不安全端口的英文编号,但中文却鬼扯什么网页暂时无法连接,或者已经迁移。谷歌敢这么明目张胆,简单粗暴地封禁端口,而又缺乏必要且明确的提示,是赤裸裸的一种傲慢。