当前位置:文档之家› tomcat服务器文档

tomcat服务器文档

一、配置用户在tomcat-users.xml加入下面的role,再创建一个user,重启服务器输入下面创建的用户名和密码就可以进入管理页面了<!--对应第二个按钮权限--><role rolename="manager-gui"/><!--对应第三个按钮权限--><role rolename="admin-gui"/><user username="admin" password="admin" roles="manager-gui,admin-gui"/>注意:在localhost:8080页面下,如果一旦点击三个按钮输入过用户名,密码,localhost:8080页面会记住输入的用户名和密码,如果第一次输入的用户名密码没有manager-gui、admin-gui权限的话,会弹出拒绝页面,再次进入localhost:8080页面,点击三个按钮,会默认帮你输入之前的用户名和密码,仍然会弹出拒绝页面,要想进入管理页面,必须在之前输入的用户下加入manager-gui、admin-gui权限<user username="tomcat" password="tomcat" roles="tomcat,manager-gui,admin-gui"/>第一个按钮查看服务器状态第二个按钮管理服务器上部署的应用,页面上有start,stop按钮可以启动和关闭web project;还可以进行项目部署:在myeclipse的对应项目上右击/Export 在弹出的对话框中选择JavaEE/WARfile(MyEclipse)将该项目导入到某个位置(不妨是桌面),进入Tomcat 管理页面(http://localhost:8080)点击ManagerApp,进入管理应用界面,在WAR fileto deploy(如下图:)选择刚才到处的WAR文件即可,然后就可以在上面的应用列表中看到自己刚部署的项目。

第三个按钮管理主机界面二、应用管理1、tomcat页面JVM参数列表JVM区域总体分两类,heap区和非heap区。

heap区又分为:- Eden Space(伊甸园)、- Survivor Space(幸存者区)、- Old Gen(老年代)。

非heap区又分:- Code Cache(代码缓存区);- Perm Gen(永久代);- Jvm Stack(java虚拟机栈);- Local Method Statck(本地方法栈);下面我们对每一个内存区域做详细介绍。

Eden Space字面意思是伊甸园,对象被创建的时候首先放到这个区域,进行垃圾回收后,不能被回收的对象被放入到空的survivor区域。

Survivor Space幸存者区,用于保存在eden space内存区域中经过垃圾回收后没有被回收的对象。

Survivor有两个,分别为To Survivor、 From Survivor,这个两个区域的空间大小是一样的。

执行垃圾回收的时候Eden区域不能被回收的对象被放入到空的survivor(也就是To Survivor,同时Eden区域的内存会在垃圾回收的过程中全部释放),另一个survivor (即From Survivor)里不能被回收的对象也会被放入这个survivor(即To Survivor),然后To Survivor 和 From Survivor的标记会互换,始终保证一个survivor是空的。

这里写图片描述Eden Space和Survivor Space都属于新生代,新生代中执行的垃圾回收被称之为Minor GC (因为是对新生代进行垃圾回收,所以又被称为Young GC),每一次Young GC后留下来的对象age加1。

注:GC为Garbage Collection,垃圾回收。

Old Gen老年代,用于存放新生代中经过多次垃圾回收仍然存活的对象,也有可能是新生代分配不了内存的大对象会直接进入老年代。

经过多次垃圾回收都没有被回收的对象,这些对象的年代已经足够old了,就会放入到老年代。

当老年代被放满的之后,虚拟机会进行垃圾回收,称之为Major GC。

由于Major GC除并发GC外均需对整个堆进行扫描和回收,因此又称为Full GC。

heap区即堆内存,整个堆大小=年轻代大小 + 老年代大小。

堆内存默认为物理内存的1/64(<1GB);默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制,可以通过MinHeapFreeRatio参数进行调整;默认空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制,可以通过MaxHeapFreeRatio参数进行调整。

下面我们来认识下非堆内存(非heap区)Code Cache代码缓存区,它主要用于存放JIT所编译的代码。

CodeCache代码缓冲区的大小在client模式下默认最大是32m,在server模式下默认是48m,这个值也是可以设置的,它所对应的JVM参数为ReservedCodeCacheSize 和 InitialCodeCacheSize,可以通过如下的方式来为Java程序设置。

-XX:ReservedCodeCacheSize=128m1CodeCache缓存区是可能被充满的,当CodeCache满时,后台会收到CodeCache is full的警告信息,如下所示:“CompilerThread0” ng.OutOfMemoryError: requested 2854248 bytes for Chunk::new. Out of swap space?注:JIT编译器是在程序运行期间,将Java字节码编译成平台相关的二进制代码。

正因为此编译行为发生在程序运行期间,所以该编译器被称为Just-In-Time编译器。

Perm Gen全称是Permanent Generation space,是指内存的永久保存区域,因而称之为永久代。

这个内存区域用于存放Class和Meta的信息,Class在被 Load的时候被放入这个区域。

因为Perm里存储的东西永远不会被JVM垃圾回收的,所以如果你的应用程序LOAD很多CLASS的话,就很可能出现PermGen space错误。

默认大小为物理内存的1/64。

2、tomcat运行JVM参数修改1、修改启动时内存参数、并指定JVM时区(在Windows Server 2008 下时间少了8个小时):在Tomcat上运行j2ee项目代码时,经常会出现内存溢出的情况,解决办法是在系统参数中增加系统参数:Windows下,在catalina.bat最前面:set JAVA_OPTS=-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m;-Duser.timezone=GMT+08;一定加在catalina.bat最前面。

Linux下,在catalina.sh最前面增加:JAVA_OPTS="-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m -Duser.timezone=Asia/Shanghai"注意:前后二者区别,有无set,有无双引号。

3、tomcat线程池参数修改首先。

打开/conf/server.xml,增加<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"maxThreads="500" minSpareThreads="20" maxIdleTime="60000" />最大线程500(一般服务器足以),最小空闲线程数20,线程最大空闲时间60秒。

然后,修改<Connector ...>节点,增加executor属性,如:<Connector executor="tomcatThreadPool"port="80"protocol="HTTP/1.1"maxThreads="600"minSpareThreads="100"maxSpareThreads="300"connectionTimeout="60000"keepAliveTimeout="15000"maxKeepAliveRequests="1"redirectPort="443"....../>maxThreads:Tomcat可创建的最大的线程数,每一个线程处理一个请求;minSpareThreads:最小备用线程数,tomcat启动时的初始化的线程数;maxSpareThreads:最大备用线程数,一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程;acceptCount:指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,就是被排队的请求数,超过这个数的请求将拒绝连接。

connnectionTimeout:网络连接超时,单位:毫秒。

设置为0表示永不超时,这样设置有隐患的。

通常可设置为30000毫秒。

enableLookups:是否允许DNS查询注意:可以多个connector公用1个线程池。

相关主题