您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > tomcat监控分析以及调优
tomcat监控分析以及调优安大叔2013-03-05tomcat目录目录:•tomcat介绍•tomcat安装•tomcat使用•tomcat监控•tomcat分析调优Tomcat简单介绍•Tomcat服务器是一个免费的开放源代码的轻量级Web应用服务器,如apache处理静态HTML能力突出不同,tomcat处理动态HTML能力相当强大,因此一般项目都是部署apache+tomcat,由apache处理程序的静态文件,有tomcat处理JSP页面和ServletTomcat目录•tomcat目录结构•/bin:存放windows或Linux平台上启动和关闭Tomcat的脚本文件•/conf:存放Tomcat服务器的各种全局配置文件,其中最重要的是server.xml和web.xml•/doc:存放Tomcat文档•/server:包含三个子目录:classes、lib和webapps•/server/lib:存放Tomcat服务器所需的各种JAR文件•/server/webapps:存放Tomcat自带的两个WEB应用admin应用和manager应用•/common/lib:存放Tomcat服务器以及所有web应用都可以访问的jar文件•/shared/lib:存放所有web应用都可以访问的jar文件(但是不能被Tomcat服务器访问)•/logs:存放Tomcat执行时的日志文件•/src:存放Tomcat的源代码•/webapps:Tomcat的主要Web发布目录,默认情况下把Web应用文件放于此目录•/work:存放JSP编译后产生的class文件Tomcat配置方法•启动内存参数的配置tomcat/bin/catalina.bat如果是linux就是catalina.sh在rem的后面增加如下参数setJAVA_OPTS=-Xms256m-Xmx256m-XX:MaxPermSize=64m•修改Tomcat的JDK目录打开tomcat/bin/catalina.bat在最后一个rem后面增加setJAVA_HOME=C:\ProgramFiles\Java\jdk1.6.0Tomcat配置方法•部署一个web应用•有两个办法可以在系统中部署web服务。•1拷贝WAR文件或者web应用文件夹(包括该web的所有内容)到$CATALINA_BASE/webapps目录下。•2为web服务建立一个只包括context内容的XML片断文件,并把该文件放到$CATALINA_BASE/webapps目录下。这个web应用本身可以存储在硬盘上的任何地方。•如果有一个WAR文件,想部署它,则只需要把该文件简单的拷贝到CATALINA_BASE/webapps目录下即可,文件必须以“.war”作为扩展名。一旦Tomcat监听到这个文件,它将(缺省的)解开该文件包作为一个子目录,并以WAR文件的文件名作为子目录的名字。接下来,Tomcat将在内存中建立一个context,就好象在server.xml文件里建立一样。当然,其他必需的内容,将从server.xml中的DefaultContext获得。•部署web应用的另一种方式是写一个ContextXML片断文件,然后把该文件拷贝到CATALINA_BASE/webapps目录下。一个Context片断并非一个完整的XML文件,而只是一个context元素,以及对该应用的相应描述。这种片断文件就像是从server.xml中切取出来的context元素一样,所以这种片断被命名为“context片断”。Tomcat后台监控•在conf文件夹下找到一个tomcat-users.xml里增加用户?xmlversion='1.0'encoding='utf-8'?tomcat-usersrolerolename=tomcat/rolerolename=role1/rolerolename=manager/rolerolename=admin/userusername=tomcatpassword=tomcatroles=tomcat/userusername=bothpassword=tomcatroles=tomcat,role1/userusername=role1password=tomcatroles=role1/Tomcat后台监控•启动Tomcat后(假设%Tomcat_Home%\conf\server.xml中的默认服务端口仍是8080),在浏览器中键入,出现启动成功画面Tomcat后台监控•Status控制台是用于监控Web应用的状态。•Manager控制台可以部署、监控Web应用。•点击上图中的Status链接,然而出现如下登陆对话框:,输入上个步骤中文件中的配置的用户和密码,进入监控后台Tomcat后台监控监控台:Tomcat后台监控监控台关注指标以及解释Tomcat调优之集成apache•虽然Tomcat也可以作web服务器,但其处理静态html的速度比不上Apache,且其作为web服务器的功能远不如Apache,因此把Apache和Tomcat集成起来,将html和Jsp的功能部分进行明确分工,让Tomcat只处理Jsp部分,其他的由Apache,IIS等web服务器去处理,由此大大提高Tomcat的运行效率。•【部署步骤】1.安装Apache服务器2.部署Tomcat3.将mod_jk.so拷贝到modules目录下面4.修改httpd.conf和mod_jk.conf•【适用场景】大量使用静态页面的应用系统Tomcat调优之apache+tomcat集群•对于并发要求很高的系统,我们需要采取负载均衡的方式来分担Tomcat服务器的压力。负载均衡实现大概有四种:第一是通过DNS,但只能简单的实现轮流分配,不能处理故障;第二是基于MSIIS,windows2003server本身就带了负载均衡服务;第三是硬件方式,通过交换机功能或专门的负载均衡设备来实现;第四种是软件的方式,通过一台负载均衡服务器进行,上面安装软件。使用ApacheHttpdServer做负载均衡器,Tomcat集群节点使用Tomcat就可以做到上述第四种方式,这种方式比较灵活,成本相对比较低,另外一个很大的优点就是可以根据应用情况和服务器的情况做一些灵活的配置。所以推荐使用Apache+Tomcat集群来实现负载均衡。采用Tomcat集群可以最大程度的发挥服务器的性能,可以在配置较高的服务器上部署多个Tomcat,也可以在多台服务器上分别部署Tomcat,Apache和Tomcat整合的方式还是JK方式。经过验证,系统对大用户量使用的响应方面,Apache+3Tomccat集群Apache+2Tomcat集群Apache集成Tomcat单个Tomcat。并且采用Apache+多Tomcat集群的部署方式时,如果一个Tomcat出现宕机,系统可以继续使用,所以在硬件系统性能足够优越的情况下,需要尽量发挥软件的性能,可以采用增加Tomcat集群的方式。Apache+Tomcat集群的方式使用到得配置文件有httpd.conf、mod_jk.conf、workers.properties。其中mod_jk.conf是对JK信息的配置,包括JK的路径等,workers.properties配置文件是对Tomcat服务器的连接定义文件。Apache需要调整运行参数,这样才能构建一个适合相应网络环境的web服务Tomcat调优之apache+tomcat集群•其中可进行的优化配置如下:1.设置MPM(MultiProcessingModules多道处理模块)。ThreadPerChild,这个参数用于设置每个进程的线程数,在Windows环境下默认值是64,最大值是1920,建议设置为100-500之间,服务器性能高的话值大一些,反之小一些。MaxRequestPerChild表示每个子进程能够处理的最大请求数。这个参数的值更大程度上取决于服务器的内存,如果内存比较大的话可以设置为很大的参数,否则设置一个较小的值,建议值是3000.2.关闭DNS和名字解析HostnameLookupsoff3.打开UseCanonicalName模块UseCanonicalNameon4.关闭多余模块一般来说,不需要加载的模块有,mod_include.so、mod_autoindex.so、mod_access.so、mod_auth.so.5.打开KeepAlive支持KeepAliveon,KeepAliveTimeout15MaxKeepAliveRequests1000根据实际经验,通过Apache和Tomcat集群的方式提高系统性能的效果十分明显,这种方式可以最大化的利用硬件资源,通过多个Tomcat的处理来分担单Tomcat时的压力。Tomcat调优之apache+tomcat集群•【部署步骤】1.安装Apache服务器2.部署Tomcat集群,即多个相同的Tomcat。3.将mod_jk.so拷贝到modules目录下面4.修改httpd.conf、mod_jk.conf和workers.properties•【适用场景】并发用户量及在线使用用户数量比较高的系统。Tomcat调优之JVM•Linux启动参数:exportJAVA_OPTS=-server-Xms1400M-Xmx1400M-Xss512k-XX:+AggressiveOpts-XX:+UseBiasedLocking-XX:PermSize=128M-XX:MaxPermSize=256M-XX:+DisableExplicitGC-XX:MaxTenuringThreshold=31-XX:+UseConcMarkSweepGC-XX:+UseParNewGC-XX:+CMSParallelRemarkEnabled-XX:+UseCMSCompactAtFullCollection-XX:LargePageSizeInBytes=128m-XX:+UseFastAccessorMethods-XX:+UseCMSInitiatingOccupancyOnly-Djava.awt.headless=true“•具体参数解释以及优化见《JVM参数解释以及优化建议》Tomcat调优之禁用DNS查询•当web应用程序向要记录客户端的信息时,它也会记录客户端的IP地址或者通过域名服务器查找机器名转换为IP地址。DNS查询需要占用网络,并且包括可能从很多很远的服务器或者不起作用的服务器上去获取对应的IP的过程,这样会消耗一定的时间。为了消除DNS查询对性能的影响我们可以关闭DNS查询,方式是修改server.xml文件中的enableLookups参数值改为false:enableLookups=falseTomcat调优之tomcat容器优化•通过应用程序的连接器(Connector)进行性能控制的的参数是创建的处理请求的线程数。Tomcat使用线程池加速响应速度来处理请求。在Java中线程是程序运行时的路径,是在一个程序中与其它控制线程无关的、能够独立运行的代码段。它们共享相同的地址空间。多线程帮助程序员写出CPU最大利用率的高效程序,使空闲时间保持最低,从而接受更多的请求,以下以tomcat5为例:maxThreads:Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。acceptCount:指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。connnectionTimeout:网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。minSpareThreads:Tomcat初始化时创建的线程数。maxSpar
本文标题:tomcat监控分析以及调优
链接地址:https://www.777doc.com/doc-5835288 .html