Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个java虚拟机。JAVA程序启动时JVM都会分配一个初始内存和{zd0}内存给这个应用程序。这个初始内存和{zd0}内存在一定程度都会影响程序的性能。比如说在应用程序用到{zd0}内存的时候,JVM是要先去做垃圾回收的动作,释放被占用的一些内存。所以想调整Tomcat的启动时初始内存和{zd0}内存就需要向JVM声明,一般的JAVA程序在运行都可以通过中-Xms -Xmx来调整应用程序的初始内存和{zd0}内存: Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,需要调大。有以下几种方法可以选用: {dy}种方法: Windows下,在文件/bin/catalina.bat,Unix下,在文件/bin/catalina.sh的前面,增加如下设置: JAVA_OPTS='-Xms【初始化内存大小】 -Xmx【可以使用的{zd0}内存】' 需要把这个两个参数值调大。例如: JAVA_OPTS='-Xms256m -Xmx512m' 表示初始化内存为256MB,可以使用的{zd0}内存为512MB。 第二种方法: 环境变量中设
另外需要考虑的是Java提供的垃圾回收机制。虚拟机的堆大小决定了虚拟机花费在收集垃圾上的时间和频度。收集垃圾可以接受的速度与应用有关,应该通过分析实际的垃圾收集的时间和频率来调整。如果堆的大小很大,那么xx垃圾收集就会很慢,但是频度会降低。如果你把堆的大小和内存的需要一致,xx收集就很快,但是会更加频繁。调整堆大小的的目的是最小化垃圾收集的时间,以在特定的时间内{zd0}化处理客户的请求。在基准测试的时候,为保证{zh0}的性能,要把堆的大小设大,保证垃圾收集不在整个基准测试的过程中出现。 一个要注意的地方:建议把内存的{zg}值跟{zd1}值的差值缩小,不然会浪费很多内存的, {zd1}值加大 ,{zg}值可以随便设,但是要根据实际的物理内存 ,如果内存设置太大了,比如设置了512M{zd0}内存,但如果没有512M可用内存,Tomcat就不能启动,还有可能存在内存被系统回收,终止进程的情况。 |