首页 > 代码库 > tomcat
tomcat
Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个java虚拟机。
#####关于tomcat server.xml文件详解
[dy@web-dy server]# cat /usr/local/apache-tomcat-6.0.41_8081/conf/server.xml
<?xml version=‘1.0‘ encoding=‘utf-8‘?>
<Server port="8181" shutdown="SHUTDOWN">
###port="8181" 已做修改
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.JasperListener" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
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" />
</GlobalNamingResources>
<Service name="Catalina">
<Connector port="8081" protocol="HTTP/1.1"
###port="8081" 已做修改
maxThreads="512" minSpareThreads="256" maxSpareThreads="512"
enableLookups="false" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"
redirectPort="8443"/>
<Connector port="8281"
###port="8281" 已做修改
maxThreads="512" minSpareThreads="256" maxSpareThreads="512"
acceptCount="1024" debug="0" connectionTimeout="20000"
enableLookups="false"
protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="/app/trend" debug="0" reloadable="true" crossContext="true"/>
###Context该行指定程序目录 即docBase="/app/trend",若该行被注释,则进到webapps目录下,即appBase="webapps"
</Host>
</Engine>
</Service>
</Server>
#####关于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。
本文出自 “青春邓勇” 博客,请务必保留此出处http://dengyong.blog.51cto.com/8409869/1563062
tomcat