JVM 配置

    Tomcat 将会如何运行在某种程度上要依赖于你是如何配置运行Tomcat的那个JVM的。例如,如果你没有把JVM 配置成能够使用指定数量的堆内存,它就会使用默认量的内存,而这默认的内存可能对于你将要运行的 web 应用来说是不够的。如果 Tomcat 在启动时没有足够的内存运行你的webapp,对于所有的 web 客户端,它就会发送错误页面给它们。如果Tomcat有足够的内存启动你的webapp,但还不够处理connecter允许进入Tomcat 的并发请求数,则一些或所有的请求将收到一个错误响应或 a dropped connection。

    有太多的你可能要设置的JVM启动开关设置。下面是选取的一些最有用的 JVM 启动开关设置。


 

    关于 heap 的设置无疑是最重要的配置,所以你要理解并正确设置。内存设置过度受限,则 Tomcat 将会要么运行得很慢或抛出 OutOfMemoryError 而失败并表现得不稳定。而如果内存设置过大,JVM要么是不会启动,因为它不能分配如此大的内存,要么是启动了也运行Okay的,但是会用掉比它需要的内存更多的内存,计算机上的其他软件就不能运行了。

    如果给Tomcat JVM 配了一个小的启动堆内存和一个大的最大堆内存,在Java VM将堆内存提升到最大堆内存这段期间,页面响应时间就受到了影响,因为在Tomcat尝试响应请求时又要花时间去reallocate内存块。 如果你不想性能受到这个问题的影响,就要确保你的 -Xms 和 -Xmx 的值是一样的值,这样在操作过程中,JVM就无需重新调整堆内存的大小。

    可以设置 JAVA_OPTS 环境变量来设置上面提到的JVM启动开关,然后再调用 $CATALINA_HOME/bin下的脚本。

    如果你想让 Tomcat JVM 以 debug 模式启动,这样你就可以附加一个远程debugger,那就要这么设置:

JAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"

    That should allow you to connect a JPDA remote debugger client to port 8000 on your Tomcat host and debug any code that runs in the Tomcat JVM。

    如果你的操作系统不包含图形化显示软件(例如,如果你有 Linux、Solaris,或FreeBSD,但没有安装 X window system binaries),你就应当设置 -Djava.awt.headless=true,这样,any software you include in your webapps that might try to initialize any graphical code in the Tomcat JVM will not cause an exception。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值