`

tomcat的配置和优化

 
阅读更多

tomcat的内存使用配置,最大连接数配置。

 

如何修改配置呢,在/tomcat的/bin/下面有个脚本文件catailna.sh。 如果 windows 是bat设置tomcat的使用内存,其实就是设置jvm的使用参数。

 

一.Tomcat内存优化

 

Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置 JAVA_OPTS 参数。

 

1.JAVA_OPTS参数说明

 

Java代码

 -server  启用jdk 的 server 版;
 -Xms      java虚拟机初始化时的最小内存;
 -Xmx      java虚拟机可使用的最大内存;
 -XX:PermSize    内存永久保留区域
 -XX:MaxPermSize   内存最大永久保留区域

设置Tomcat启动的初始内存,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项,要加“m”说明是MB,否则就是KB了,在启动tomcat时会报内存不足。

 

 -Xms:初始值  【初始化内存大小】
-Xmx:最大值  【可以使用的最大内存】
-Xmn:最小值
JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。Heap size 的大小是Young Generation 和Tenured Generaion 之和。

 

提示:在JVM中如果98%的时间是用于GC且可用的Heap size 不足2%的时候将抛出此异常信息。

 

提示:Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。 这两个值的大小一般根据需要进行设置。初始化堆的大小执行了虚拟机在启动时向系统申请的内存的大小。一般而言,这个参数不重要。但是有的应用 程序在大负载的情况下会急剧地占用更多的内存,此时这个参数就是显得非常重要,如果虚拟机启动时设置使用的内存比较小而在这种情况下有许多对象进行初始 化,虚拟机就必须重复地增加内存来满足使用。由于这种原因,我们一般把-Xms和-Xmx设为一样大,而堆的最大值受限于系统使用的物理内存。一般使用数 据量较大的应用程序会使用持久对象,内存使用有可能迅速地增长。当应用程序需要的内存超出堆的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃。因 此一般建议堆的最大值设置为可用内存的最大值的80%。

  • 如果系统花费很多的时间收集垃圾,请减小堆大小。一次完全的垃圾收集应该不超过 3-5 秒。如果垃圾收集成为瓶颈,那么需要指定代的大小,检查垃圾收集的详细输出,研究 垃圾收集参数对性能的影响。一般说来,你应该使用物理内存的 80% 作为堆大小。当增加处理器时,记得增加内存,因为分配可以并行进行,而垃圾收集不是并行的。

  • 在重启你的Tomcat服务器之后,这些配置的更改才会有效。

Windows在文件{tomcathome}/bin/catalina.bat,Unix在文件{tomcathome}/bin/catalina.sh的前面,增加如下设置:

服务器参数配置
tomcat默认: -Xms1024m -Xmx1024m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=256m

Java_OPTS参数

JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8
-server -Xms2048m -Xmx2048m
-XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=512m
-XX:MaxPermSize=512m -XX:+DisableExplicitGC"

配置完成后可重启Tomcat ,通过以下命令进行查看配置是否生效:

 

1.首先查看Tomcat 进程号:

ps -ef | grep tomcat

我们可以看到Tomcat 进程号是 9217 

 

1.查看是否配置生效:

sudo jmap –heap 9217

我们可以看到MaxHeapSize 等参数已经生效。

 

二.Tomcat并发优化

 

1.Tomcat连接相关参数

 

在Tomcat配置文件conf下面 server.xml 中的配置中和连接数相关的参数有:

 

minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为10
maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为75
acceptCount:允许的最大连接数,应大于等于maxProcessors,默认值为100
enableLookups:是否反查域名,取值为:true或false。为了提高处理能力,应设置为false
connectionTimeout:网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。

1.参数说明 
默认的tomcat 参数:

<Connector port=“8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />

修改:

<Connector port=“8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
  maxThreads="600"
  minSpareThreads="100"
  maxSpareThreads="500"
  acceptCount="700"
  connectionTimeout="20000"
  redirectPort="8443" />

这样设置以后,基本上没有再当机过。

protocol="org.apache.coyote.http11.Http11NioProtocol" ///使用java的异步io护理技术,no blocking IO
maxThreads=“600" 表示最多同时处理600个连接 ///最大线程数
minSpareThreads=“100" 表示即使没有人使用也开这么多空线程等待  ///初始化时创建的线程数
maxSpareThreads=“500" 表示如果最多可以空500个线程,例如某时刻有505人访问,之后没有人访问了,则tomcat不会保留505个空线程,而是关闭505个空的。   ///一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。
acceptCount="700"//指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理

这里是http connector的优化,如果使用apache和tomcat做集群的负载均衡,并且使用ajp协议做apache和tomcat的协议转发,那么还需要优化ajp connector。

<Connector port="8009" protocol="AJP/1.3" maxThreads="600" minSpareThreads="100" maxSpareThreads="500" acceptCount="700" connectionTimeout="20000" redirectPort="8443" />

 

解决常遇到的一些报错

一、Tomcat的JVM提示内存溢出

查看%TOMCAT_HOME%\logs文件夹下,日志文件是否有内存溢出错误

 

二、修改Tomcat的JVM

1、错误提示:java.lang.OutOfMemoryError: Java heap space

Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,有可能导致系统无法运行。常见的问题是报Tomcat内存溢出错误,Out of Memory(系统内存不足)的异常,从而导致客户端显示500错误,一般调整Tomcat的使用内存即可解决此问题。

windows环境下修改

“%TOMCAT_HOME%\bin\catalina.bat”文件,在文件开头增加如下设置:JAVA_OPTS=-Xms2048m -Xmx2048m

Linux环境下修改

“%TOMCAT_HOME%\bin\catalina.sh”文件,在文件开头增加如下设置:JAVA_OPTS=-Xms2048m -Xmx2048m

其中,-Xms设置初始化内存大小,-Xmx设置可以使用的最大内存。

跟我上面那么设置就可以了。

 

2、错误提示:java.lang.OutOfMemoryError: PermGen space

原因:

PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM存
放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的应用中有很CLASS的话,就很可能出现PermGen space错误,这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。

解决方法:

在catalina.bat的第一行增加:

set JAVA_OPTS=-Xms64m -Xmx256m -XX:PermSize=128M -XX:MaxNewSize=256m - XX:MaxPermSize=256m

在catalina.sh的第一行增加:

JAVA_OPTS=-Xms64m -Xmx256m -XX:PermSize=128M -XX:MaxNewSize=256m  XX:MaxPermSize=256m
三、查看Tomcat的JVM内存
  1. Tomcat6中没有设置任何默认用户,因而需要手动往Tomcat6的conf文件夹下的tomcat-users.xml文件中添加用户。 如:

       <role rolename="manager"/>
      <user username="tomcat" password="tomcat" roles="manager"/>

注:添加完需要重启Tomcat6。

2.tomcat7

   <role rolename="manager"/>
  <user username="admin" password="" roles="manager-gui"/>
 
  1. 访问http://localhost:8080/manager/status,输入上面添加的用户名和密码。

  2. 然后在如下面的JVM下可以看到内存的使用情况。

分享到:
评论

相关推荐

    Tomcat配置方法 Tomcat配置方法 Tomcat配置方法

    **优化和性能调整**: 1. 调整`server.xml`中的`Connector`元素,如增大最大连接数,调整线程池大小等。 2. 使用JVM的调优工具,如JConsole或VisualVM,监控和调整内存分配。 **启动和停止Tomcat**: 1. 在命令行...

    tomcat配置、优化

    tomcat配置、优化

    TOMCAT-5.5.X优化配置

    很好的TOMCAT-5.5.X优化配置文档,详细说明了各个的参数设置

    tomcat的优化的重要配置

    tomcat的优化,配置之后能很大的提高你的项目速度!!

    Tomcat 配置与优化方案详解

    在实际应用中,合理的配置和优化Tomcat对于提升Web应用性能和响应速度有着非常重要的作用。本文将详细介绍Tomcat的配置与优化方案。 首先需要了解Tomcat的配置文件——server.xml。它是Tomcat的核心配置文件,包含...

    tomcat及其配置文件

    总结来说,理解和掌握Tomcat的配置文件对于优化其性能、提升安全性以及解决故障至关重要。同时,了解如何在Linux环境下服务化Tomcat,可以提高运维效率,确保服务的稳定性和可靠性。在实际工作中,开发者和运维人员...

    Tomcat性能优化

    【描述】:“Tomcat7性能优化调优Tomcat7性能优化调优Tomcat7性能优化调优”重复强调了对Tomcat7版本的性能调整,这可能涉及到内存管理、线程池设置、连接器配置、JVM参数优化等多个方面。性能调优的目标是提高...

    linux下tomcat安装和优化

    本文详细介绍了 Tomcat 在 Linux 服务器下的安装和优化过程,包括下载和准备安装包、创建安装目录和设置拥有者、解压安装包、修改配置脚本、启动 Tomcat、查看日志、测试访问、发布项目和优化 Tomcat 等步骤。...

    apache-tomcat-8.5配置优化后

    它的配置优化对于提升应用性能、确保稳定性和安全至关重要。在这个配置优化后版本中,我们已经设置好了管理员的用户名和密码,允许用户直接使用admin账户登录进行管理操作。 **优化要点一:JVM配置** 1. **内存分配...

    tomcat 启动优化和并发并发优化配置.rar

    本文将深入探讨Tomcat的启动优化和并发优化配置,帮助开发者们更好地理解并实践这些关键设置,以实现更高效、更稳定的运行环境。 一、Tomcat启动优化 1. **JVM参数调整**:启动Tomcat时,合理设置JVM参数可以显著...

    tomcat集群优化详细配置

    【Tomcat集群优化详细配置】 在IT行业中,服务器性能优化是一项关键任务,特别是在高并发、大规模用户访问的场景下。Tomcat,作为广泛使用的...正确配置和优化Tomcat集群,对于提升服务质量和用户体验具有重要意义。

    Tomcat7性能优化

    通过对Tomcat进行合理配置和优化,可以显著提升系统的响应速度和服务质量。本文将围绕“Tomcat7性能优化”这一主题,详细介绍如何通过优化配置提高Tomcat服务器的并发能力,并深入探讨服务器资源(如CPU、内存、硬盘...

    Linux下JDK+Tomcat安装配置

    在本文档中,我们将详细介绍如何在CentOS系统上安装和配置JDK和Tomcat环境。以下是整个安装和配置过程的步骤。 一、下载所需文件 在开始安装之前,需要下载两个必要的文件:jdk-7u25-linux-x64.rpm和apache-tomcat...

    Tomcat7 性能优化

    高性能的硬件能够提供更强的数据处理能力和更快的响应速度,但考虑到成本因素,本文将重点放在软件配置的优化上,以期达到更高的性价比。 #### 四、Tomcat7优化配置详解 ##### 4.1 配置管理员账户 为了方便管理...

    TOMCAT架构服务器优化指南

    TOMCAT作为一款广泛应用的Java Servlet容器,其优化对于提升Web应用的响应速度和用户体验至关重要。 一、TOMCAT架构解析 TOMCAT服务器的核心是基于Java的Servlet和JavaServer Pages(JSP)技术。它的主要组件包括:...

    Linux下配置tomcat和jdk

    在Linux环境下配置Tomcat和JDK,不仅能够提高系统的稳定性和安全性,还能更好地利用Linux系统的资源管理优势。 #### 二、准备工作 在正式安装配置之前,确保已经安装了Linux操作系统,并且熟悉基本的Linux命令操作...

    Tomcat 安全配置与性能优化

    通过对Tomcat的内存配置、server.xml文件中的关键参数进行合理的调整和优化,可以显著提升Tomcat服务器的性能和稳定性。此外,合理的架构设计(如使用多个Tomcat实例并结合负载均衡技术)也是提高整体系统可靠性的...

    apache和tomcat配置总结

    以下是对Apache和Tomcat配置的详细总结: 1. **Apache与Tomcat集群的三种方式**: - **JK模垰**:通过mod_jk模块连接Apache和Tomcat,提供高效的数据传输和负载均衡。 - **HTTP代理**:Apache作为反向代理服务器...

Global site tag (gtag.js) - Google Analytics