tomcat优化

1. 你怎样给 tomcat 去调优?

  • JVM参数调优:-Xms 表示JVM初始化堆的大小,-Xmx表示JVM堆的最大值。这两个值的大小一般根据需要进行设置。当应用程序需要的内存超出堆的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃。因此一般建议堆的最大值设置为可用内存的最大值的80%。在catalina.bat中,设置JAVA_OPTS=’-Xms256m -Xmx512m’,表示初始化内存为256MB,可以使用的最大内存为512MB。
  • 禁用DNS查询 :当web应用程序向要记录客户端的信息时,它也会记录客户端的IP地址或者通过域名服务器查找机器名转换为IP地址。DNS查询需要占用网络,并且包括可能从很多很远的服务器或者不起作用的服务器上去获取对应的IP的过程,这样会消耗一定的时间。为了消除DNS查询对性能的影响我们可以关闭DNS查询,方式是修改server.xml文件中的enableLookups参数值:
    Tomcat4 :
    <Connector className=“org.apache.coyote.tomcat4.CoyoteConnector” port=“80”
    minProcessors=“5” maxProcessors=“75” enableLookups=“false” redirectPort=“8443”
    acceptCount=“100” debug=“0” connectionTimeout=“20000”
    useURIValidationHack=“false” disableUploadTimeout=“true” />

Tomcat5 :
<Connector port=“80” maxThreads=“150” minSpareThreads=“25”
maxSpareThreads=“75” enableLookups=“false” redirectPort=“8443”
acceptCount=“100” debug=“0” connectionTimeout=“20000”
disableUploadTimeout=“true”/>

  • 调整线程数 :通过应用程序的连接器(Connector)进行性能控制的的参数是创建的处理请求的线程数。Tomcat使用线程池加速响应速度来处理请求。在Java中线程是程序运行时的路径,是在一个程序中与其它控制线程无关的、能够独立运行的代码段。它们共享相同的地址空间。多线程帮助程序员写出CPU最大利用率的高效程序,使空闲时间保持最低,从而接受更多的请求。
    Tomcat4中可以通过修改minProcessors和maxProcessors的值来控制线程数。这些值在安装后就已经设定为默认值并且是足够使用的,但是随着站点的扩容而改大这些值。

minProcessors服务器启动时创建的处理请求的线程数应该足够处理一个小量的负载。也就是说,如果一天内每秒仅发生5次单击事件,并且每个请求任务处理需要1秒钟,那么预先设置线程数为5就足够了。但在你的站点访问量较大时就需要设置更大的线程数,指定为参数maxProcessors的值。maxProcessors的值也是有上限的,应防止流量不可控制(或者恶意的服务攻击),从而导致超出了虚拟机使用内存的大小。如果要加大并发连接数,应同时加大这两个参数。web server允许的最大连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。

在Tomcat5对这些参数进行了调整,请看下面属性:

  • maxThreads Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。
  • acceptCount 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。
  • connnectionTimeout 网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒
  • minSpareThreads Tomcat初始化时创建的线程数。 一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程
    在这里插入图片描述
    2、如何加大tomcat连接数
    在tomcat配置文件server.xml中的配置中,和连接数相关的参数有:
  • minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为10
  • maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为75
  • acceptCount:允许的最大连接数,应大于等于maxProcessors,默认值为100
  • enableLookups:是否反查域名,取值为:true或false。为了提高处理能力,应设置为false
  • connectionTimeout:网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。
    == 其中和最大连接数相关的参数为maxProcessors和acceptCount。如果要加大并发连接数,应同时加大这两个参数==

3、怎样加大tomcat的内存。

  • 修改 tomcat 的内存方式(在catalina.bat中):在set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%这行下面前面加上JAVA_OPTS=’-Xms512m -Xmx1024m’JAVA_OPTS="$JAVA_OPTS -server -XX:PermSize=64M -XX:MaxPermSize=256m"。其中 JAVA_OPTS=’-Xms512m -Xmx1024m’ 是设置Tomcat使用的内存的大小,-XX:PermSize=64M -XX:MaxPermSize=256m 指定类空间(用于加载类)的内存大小 。
  • 扩大jvm的方法这个说法太泛,其实是在运行jvm的时候指定的,如果运行的是 tomcat 就是改 catalina.bat。如果运行的是eclipse 就是修改 eclipse.ini。所以jvm的内存大小怎么修改是看你运行的具体程序的,不通程序有不同的改法。

4、Tomcat有几种部署方式
四种方式:

  • 在tomcat中的conf目录中,在server.xml中的,节点中添加:
<Context path="/hello" 
docBase="D:/eclipse3.2.2/forwebtoolsworkspacehello/WebRoot" debug="0" 
privileged="true">  
</Context> 
  • 将web项目文件件拷贝到webapps 目录中
  • 很灵活,在conf目录中,新建 Catalina(注意大小写)\localhost目录,在该目录中新建一个xml文件,名字可以随意取,只要和当前文件中的文件名不重复就行了,该xml文件的内容为:
<Context path="/hello" docBase="D:eclipse3.2.2forwebtoolsworkspacehelloWebRoot" 
debug="0" privileged="true">  
</Context> 
  • 可以用tomcat在线后台管理器,一般tomcat都打开了,直接上传war就可以

5、Tomcat 的优化经验。
Tomcat 作为 Web 服务器,它的处理性能直接关系到用户体验,下面是几种常见的优化措施:

  • 去掉对 web.xml 的监视,把 jsp 提前编辑成 Servlet。有富余物理内存的情况,加大 tomcat 使用的 jvm 的内存

  • 服务器资源
    服务器所能提供 CPU、内存、硬盘的性能对处理能力有决定性影响
    ****对于高并发情况下会有大量的运算,那么 CPU 的速度会直接影响到处
    理速度。
    ****内存在大量数据处理的情况下,将会有较大的内存容量需求,可以用 - Xmx -Xms -XX:MaxPermSize 等参数对内存不同功能块进行划分。我们之前就遇到过内存分配不足,导致虚拟机一直处于 full GC,从而导致处理能力严重下降。
    ****硬盘主要问题就是读写性能,当大量文件进行读写时,磁盘极容易成为性能瓶颈。最好的办法还是利用下面提到的缓存。

  • 利用缓存和压缩
    对于静态页面最好是能够缓存起来,这样就不必每次从磁盘上读。这里我们采用了 Nginx 作为缓存服务器,将图片、css、js 文件都进行了缓存,有效的减少了后端 tomcat 的访问。

  • 采用集群 (我还是小菜 对这方面不太了解)

  • 优化 tomcat 参数

<Connector port="8080"       protocol="org.apache.coyote.http11.Http11NioProtocol"      connectionTimeout="20000"      redirectPort="8443"       maxThreads="500"   
    minSpareThreads="20"      acceptCount="100"     disableUploadTimeout="true"     enableLookups="false"       URIEncoding="UTF-8" /> 
    
							***帅气的远远啊***
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值