Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个java虚拟机。


#####关于tomcat server.xml文件详解

[dy@web-dy server]# cat /usr/local/apache-tomcat-6.0.41_8081/conf/server.xml 


###port="8181"  已做修改

 

 

 

 

 

 

   

              type="org.apache.catalina.UserDatabase"

              description="User database that can be updated and saved"

              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"

              pathname="conf/tomcat-users.xml" />

 

 

   

###port="8081"  已做修改

               maxThreads="512" minSpareThreads="256" maxSpareThreads="512"

               enableLookups="false" acceptCount="100"

               connectionTimeout="20000" disableUploadTimeout="true"

               redirectPort="8443"/>

   

###port="8281"  已做修改

               maxThreads="512" minSpareThreads="256" maxSpareThreads="512"

               acceptCount="1024" debug="0" connectionTimeout="20000"

               enableLookups="false"

        protocol="AJP/1.3" redirectPort="8443" />

   

     

             resourceName="UserDatabase"/>

     

            unpackWARs="true" autoDeploy="true"

            xmlValidation="false" xmlNamespaceAware="false">

       

###Context该行指定程序目录 即docBase="/app/trend",若该行被注释,则进到webapps目录下,即appBase="webapps"

     

   

 


#####关于tomcat jvm内存设置

[dy@web-dy bin]# cat /usr/local/apache-tomcat-6.0.41_8081/bin/catalina.sh

JAVA_OPTS="-server -Xms3g -Xmx3g -Xmn1g -Xss256k -XX:PermSize=256m -XX:MaxPermSize=256m -XX:SurvivorRatio=6 -XX:

-UseAdaptiveSizePolicy -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:ParallelGCThreads=4 -Dfile.encoding=utf-8"

其中

-server  表示以server模式运行(运行效率比默认的client高很多)

-Xms3g   初始内存大小

-Xmx3g   最大内存大小

-Xmn1g   最小内存大小


堆(Heap)和非堆(Non-heap)内存

Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”

“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就

是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给自己用的,所以方法区、JVM内部处理或优化所需的内存

、每个类结构以及方法和构造方法的代码都在非堆内存中。 

堆内存分配 JVM初始分配的内存由-Xms指定

非堆内存分配 JVM使用-XX:PermSize设置非堆内存初始值,由XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。