Tomcat配置jVM
tomcat修改JVM内存配置
1、修改启动时内存参数、并指定JVM时区(在windows server 2008 下时间少了8个小时):在Tomcat上运行j2ee项目代码时,经常会出现内存溢出的情况,解决办法是在系统参数中增加系统参数:window下,在catalina.bat最前面:查看源代码打印帮助 1 set JAVA_OPTS=-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m一定加在catalina.bat最前面。
linux下,在catalina.sh最前面增加:查看源代码打印帮助1 JAVA_OPTS="-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m -Duser.timezone=Asia/Shanghai"注意:前后二者区别,有无set,有无双引号。
2、线程池配置(Tomcat6下)使用线程池,用较少的线程处理较多的访问,可以提高tomcat处理请求的能力。
使用方式:首先。
打开/conf/server.xml,增加查看源代码打印帮助 1 <executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" minSpareThreads="20" maxIdleTime="60000" />最大线程500(一般服务器足以),最小空闲线程数20,线程最大空闲时间60 秒。
然后,修改节点,增加executor属性,如:查看源代码打印帮助1 <connector executor="tomcatThreadPool"2 port="80" protocol="HTTP/1.1"3 connectionTimeout="60000"4 keepAliveTimeout="15000"5 maxKeepAliveRequests="1"6 redirectPort="443"7 ....../>注意:可以多个connector公用1个线程池。
Tomcat启动内存设置
Tomcat的启动分为startupo.bat启动和注册为windows服务的启动,下面一一说明。
1.startup.bat启动在tomcat_home/bin目录下找到catalina.bat,用文本编辑器打开,加上下面一行:set JAVA_OPTS= -Xms1024M -Xmx1024M -XX:PermSize=256M -XX:MaxNewSize=256M -XX:MaxPermSize=256M解释一下各个参数:-Xms1024M:初始化堆内存大小(注意,不加M的话单位是KB)-Xmx1029M:最大堆内存大小-XX:PermSize=256M:初始化类加载内存池大小-XX:MaxPermSize=256M:最大类加载内存池大小-XX:MaxNewSize=256M:这个还不清楚哈,有知道的说声还有一个-server参数,是指启动jvm时以服务器方式启动,比客户端启动慢,但性能较好,大家可以自己选择。
2.windows服务启动如果你的tomcat是注册为windows服务并且是以服务方式启动的,那么上面的方法就无效了,因为这时tomcat启动是读取注册表的参数,而不是读取批处理文件的参数,这时我们有两种方法来设置jvm参数。
第一种比较简单,tomcat为我们提供了一个设置启动参数的窗体,双击tomcat_home/bin 目录下的tomcat6w.exe,如图下方的Initial memory pool就是初始化堆内存大小,Maximun memory pool是最大堆内存大小。
而要设置Perm Gen池的大小就要在Java Option里面加参数了,在里面加上:-Dcatalina.base=%tomcat_home%-Dcatalina.home=%tomcat_home%-Djava.endorsed.dirs=%tomcat_home%\endorsed-Djava.io.tmpdir=%tomcat_home%\temp-XX:PermSize=256M-XX:MaxPermSize=256M-XX:ReservedCodeCacheSize=48M-Duser.timezone=GMT+08(PS:网上说每一行后面不要有空格,没试过)第二种方法是打开注册表->HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\Tomcat6\Parameters\Java(路径可能有一点点差别)。
kettle jvm参数使用
kettle jvm参数使用Kettle是一种用于ETL(抽取、转换、加载)的开源工具,它是Pentaho数据集成套件的一部分。
在Kettle中,可以使用JVM参数来优化和调整Kettle的性能和行为。
以下是一些常见的Kettle JVM参数的使用方法和作用:1. 内存设置,可以使用-Xms和-Xmx参数来设置Kettle的初始堆大小和最大堆大小。
例如,可以使用“-Xms512m -Xmx1024m”来将初始堆大小设置为512MB,最大堆大小设置为1GB。
这有助于避免内存溢出错误,并提高Kettle的处理大数据量的能力。
2. 垃圾回收设置,可以使用-XX:+UseG1GC参数启用G1垃圾回收器,以提高垃圾回收的效率和性能。
例如,“-XX:+UseG1GC”可以用于启用G1垃圾回收器。
3. 线程设置,可以使用-XX:ParallelGCThreads参数来设置并行垃圾回收线程的数量,以充分利用多核处理器的性能。
例如,“-XX:ParallelGCThreads=4”可以设置并行垃圾回收线程为4个。
4. 类加载设置,可以使用-XX:MaxPermSize参数来设置永久代的最大大小,以避免类加载相关的问题。
例如,“-XX:MaxPermSize=256m”可以将永久代的最大大小设置为256MB。
5. 运行模式设置,可以使用-XX:+AggressiveOpts参数启用侵入式优化,以尝试提高Kettle的整体性能。
例如,“-XX:+AggressiveOpts”可以用于启用侵入式优化。
需要注意的是,使用JVM参数需要谨慎,应该根据具体的应用场景和系统配置来选择合适的参数,以达到最佳的性能和稳定性。
同时,建议在使用JVM参数之前对其作用和影响进行充分了解,以避免不必要的问题和风险。
tomcat常用的调优参数
tomcat常用的调优参数Tomcat常用的调优参数Tomcat是一个开源的Java Servlet容器,广泛应用于Java Web 应用程序的部署和运行。
为了提高Tomcat的性能和稳定性,我们可以通过调优参数来优化其配置。
本文将介绍一些常用的Tomcat 调优参数,帮助您更好地配置和优化T omcat服务器。
1. 内存设置- -Xms: 设置JVM的初始堆大小,建议设置为物理内存的1/4或1/3。
- -Xmx: 设置JVM的最大堆大小,建议设置为物理内存的1/2或2/3。
- -XX:MaxPermSize: 设置JVM的永久代大小,建议设置为256MB或512MB。
- -XX:MaxMetaspaceSize: 设置JVM的元空间大小,建议设置为256MB或512MB。
2. 线程设置- maxThreads: 设置Tomcat的最大线程数,建议根据服务器的硬件配置和并发请求数进行调整。
- acceptCount: 设置Tomcat接受请求的队列大小,建议设置为200或300。
- connectionTimeout: 设置Tomcat的连接超时时间,建议设置为30秒或60秒。
3. 连接器设置- protocol: 设置连接器的协议,常用的有HTTP/1.1和AJP/1.3。
- port: 设置连接器的监听端口,建议使用80端口作为HTTP连接器的默认端口。
- maxKeepAliveRequests: 设置每个Keep-Alive连接的最大请求数,建议设置为100或200。
- keepAliveTimeout: 设置Keep-Alive连接的超时时间,建议设置为5秒或10秒。
4. 缓存设置- cacheSize: 设置Tomcat的静态文件缓存大小,建议根据静态文件的数量和大小进行调整。
- cacheTTL: 设置静态文件缓存的过期时间,建议设置为1小时或更长。
- cacheObjectMaxSize: 设置缓存对象的最大大小,建议根据缓存对象的平均大小进行调整。
tomcat配置JAVA环境及隐藏窗口后台自动运行
一、配置环境变量1.在startup.bat里边实际调用了另一个批处理,就是setclasspath.bat这个文件,把这个文件以文本形式打开,里边写的就是寻找你配置的JAVA_HOME和JRE_HOME路径,既然电脑傻了吧唧的找不到,那咱就不让他找了,咱就直接给他就完了呗。
2.在已解压的tomcat的bin文件夹下找到startup.bat,右击->编辑。
在文件头加入下面两行: SET JAVA_HOME=D:/Program Files/Java/jdk1.7.0_07(java jdk目录,温馨小提示:请自行更换为自己的相应目录)SET TOMCAT_HOME=D:/apache-tomcat-7.0.42(解压后的tomcat文件目录,温馨小提示:请自行更换为自己的相应目录)3.同样的。
在已解压的tomcat的bin文件夹下找到shutdown.bat,右击->编辑。
在文件头加入下面两行:SET JAVA_HOME=D:/Program Files/Java/jdk1.7.0_07(java jdk目录,温馨小提示:请自行更换为自己的相应目录)SET TOMCAT_HOME=D:/apache-tomcat-7.0.42(解压后的tomcat文件目录,温馨小提示:请自行更换为自己的相应目录)4.双击startup.bat即可启动tomcat,成功启动。
5.双击shutdown.bat即可停止tomcat。
或者在已启动的tomcat窗口中直接ctrl+c也可停止tomcat。
二、隐藏tomcat窗口:一、修改tomcat中的文件参数,达到隐藏目的:引用:TOMCAT_HOME\bin\setclasspath.bat在文件的底部找到以下内容:Java代码:set _RUNJAVA="%JRE_HOME%\bin\java.exe"并修改为:set _RUNJAVA="%JRE_HOME%\bin\javaw.exe"保存后重新启动tomcat即可以在不出现命令行窗口的情况下运行。
tomcat内存配置及配置参数详解
tomcat内存配置及配置参数详解1、jvm内存管理机制:1)堆(Heap)和⾮堆(Non-heap)内存按照官⽅的说法:“ 虚拟机具有⼀个堆,堆是运⾏时数据区域,所有类实例和数组的内存均从此处分配。
堆是在 Java 虚拟机启动时创建的。
”“在JVM中堆之外的内存称为⾮堆内存(Non-heap memory)”。
可以看出JVM主要管理两种类型的内存:堆和⾮堆。
简单来说堆就是Java代码可及的内存,是留给开发⼈员使⽤的;⾮堆就是JVM留给⾃⼰⽤的,所以⽅法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运⾏时常数池、字段和⽅法数据)以及⽅法和构造⽅法的代码都在⾮堆内存中。
堆内存分配JVM初始分配的堆内存由-Xms指定,默认是物理内存的1/64;JVM最⼤分配的堆内存由-Xmx指定,默认是物理内存的1/4。
默认空余堆内存⼩于40%时,JVM就会增⼤堆直到-Xmx的最⼤限制;空余堆内存⼤于70%时,JVM会减少堆直到-Xms的最⼩限制。
因此服务器⼀般设置-Xms、-Xmx 相等以避免在每次GC 后调整堆的⼤⼩。
说明:如果-Xmx 不指定或者指定偏⼩,应⽤可能会导致ng.OutOfMemory错误,此错误来⾃JVM,不是Throwable的,⽆法⽤try...catch捕捉。
⾮堆内存分配JVM使⽤-XX:PermSize设置⾮堆内存初始值,默认是物理内存的1/64;由XX:MaxPermSize设置最⼤⾮堆内存的⼤⼩,默认是物理内存的1/4。
(还有⼀说:MaxPermSize缺省值和-server -client选项相关,-server选项下默认MaxPermSize为64m,-client选项下默认MaxPermSize为32m。
这个我没有实验。
)上⾯错误信息中的PermGen space的全称是Permanent Generation space,是指内存的永久保存区域。
tomcat中基于jrebel的配置过程
1.拿到jrebel的jar包文件,拿到的文件名称会携带版本号,需要把版本号去掉,保留jrebel.jar 这个名称,放到任何一个拥有访问权限的目录下。
2.本机使用的是tomcat7,为其建立runtime环境,并建立server,在servers标签中,右键新建然后按照指示下一步即可。
3.在servers标签中,双击server的名称,进入server配置界面点击Open launch configuration进入jvm配置页面,如下所示,在参数标签中,添加jvm启动参数,如下所示:基于默认状态下,完整的添加文字为:-Xms1024m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m -javaagent:"F:\jrebel\jrebel.jar" -noverify前一半是调整内存的,后一半是设置jrebel.jar作为代理,其中的冒号之后,是存放的文件地址.设置这个确定之后,要记得在服务器配置页面中,按下Ctrl-S,以保存本服务器配置。
4.在本tomcat服务器之上,添加需要运行的项目:点击Add and Remove 之后,可以选择要发布的项目5.接下来要准备启动了,但是启动之前,为了让jrebel生效,需要把tomcat中自带的auto reload 功能先禁用,和刚才一样,在服务器配置页面,选择左下角的module 小标签进入下一个页面在图示界面中,可以修改发布之后的访问路径,也需要把下面的Auto reloading enabled这个选框去除选择,即可关闭了tomcat中的自动重加载功能。
6.在服务器之上点右键,依次选择clean与start | debug,即可启动本服务器.7.启动时,观察console输出,注意在启动初期,有这样一段,即代表jrebel加载成功了,然后即可正常开发,大部分的重启工作就不需要再做了。
Tomcat并发优化、内存配置、垃圾回收、宕机预防
Tomcat并发优化、内存配置、垃圾回收、宕机预防Tomcat并发优化、内存配置、垃圾回收、宕机预防⽬录Tomcat并发优化、内存配置、垃圾回收、宕机预防⽬录序⾔⼀、Tomcat并发优化(1) tomcat并发参数(2) tomcat并发配置⼆、Tomcat内存配置(1) tomcat内存参数(2) tomcat内存配置三、Tomcat垃圾回收(1) JVM中对象的划分及管理(2) jvm垃圾搜集参数(3) tomcat垃圾搜集配置四、Tomcat宕机预防(1) TCP端⼝状态(2) Windows系统下的TCP参数(3) tomcat假死分析及预防五、结语序⾔这⼏天系统问题层出不穷,服务器并发性差、tomcat内存溢出、假死宕机、⽹络阻塞,搞得我好不难受,寝⾷难安。
但是经过⾼⼈指点、⽹络资料,再加上实践运⾏测试,系统逐渐稳定下来,性能也提升了不少,轻松之余,为⼤家分享我的经历,希望⼤家能够有所收获。
⼀、Tomcat并发优化tomcat并发量与其配置息息相关,⼀般的机器⼏百的并发量⾜矣,如果设置太⾼可能引发各种问题,内存、⽹络等问题也能在⾼并发下暴露出来,因此,配置参数的设置⾮常重要。
(1) tomcat并发参数maxThreads:最⼤的并发请求数,当cpu利⽤率⾼的时候,不宜增加线程的个数,当cpu利⽤率不⾼,⼤部分是io阻塞类的操作时,可以适当增加该值。
maxSpareThreads:Tomcat连接器的最⼤空闲 socket 线程数acceptCount:当处理任务的线程数达到最⼤时,接受排队的请求个数connectionTimeout:⽹络连接超时,单位毫秒enableLookups:若为false则不进⾏DNS查询,提⾼业务能⼒应设置为falsedisableUploadTimeout:若为true则禁⽤上传超时 以上是⼀些⽐较常⽤的参数,Tomcat中server.xml配置详解会有更加详细的介绍。
Tomcat6 一些调优设置内存和连接数
Tomcat6 一些调优设置内存和连接数公司的一个服务器使用Tomcat6默认配置,在后台一阵全点击服务器就报废了,查了一下就要是PERMSIZE默认值过小造成(16-64)TOMCAT_HOME/bin/catalina.sh添加一行:JAVA_OPTS=" -XX:PermSize=64M -XX:MaxPermSize=128m"问题解决(可能为调用JAR包过多原因)下面是网上看到一些设置JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M-XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "当在对其进行并发测试时,基本上30个USER上去就当机了,还要修改默认连接数设置:以下红色四行TOMCAT6中好相没有,手工加上就可以了,基本上可以解决连接数过大引起的死机。
具体数值可跟据实际情况设置<Connector port="80" protocol="HTTP/1.1"maxThreads="600"minSpareThreads="100"maxSpareThreads="500"acceptCount="700"connectionTimeout="20000"redirectPort="8443" />这样设置以后,基本上没有再当机过。
maxThreads="600" ///最大线程数minSpareThreads="100"///初始化时创建的线程数maxSpareThreads="500"///一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。
(荐)Tomcat调优及JVM参数优化
(荐)Tomcat调优及JVM参数优化Tomcat 的缺省配置是不能稳定长期运⾏的,也就是不适合⽣产环境,它会死机,让你不断重新启动,甚⾄在午夜时分唤醒你。
对于优化来说,是尽可能的增⼤可使⽤的内存容量、提⾼CPU 的频率,保证⽂件系统的读写速率等。
经过压⼒验证,在并发连接很多的情况下,CPU 的处理能⼒越强,系统运⾏速度越快。
Tomcat 的优化不像其它软件那样,简简单单的修改⼏个参数就可以了,它的优化主要有三⽅⾯,分为系统优化,Tomcat 本⾝的优化,虚拟机(JVM)调优。
系统优化就不在介绍了,接下来就详细的介绍⼀下 Tomcat 本⾝与 JVM 优化,以 Tomcat 7 为例。
⼀、Tomcat 本⾝优化Tomcat 的⾃⾝参数的优化,这块很像 ApacheHttp Server。
修改⼀下 xml 配置⽂件中的参数,调整最⼤连接数,超时等。
此外,我们安装Tomcat 是,优化就已经开始了。
1、⼯作⽅式选择为了提升性能,⾸先就要对代码进⾏动静分离,让 Tomcat 只负责 jsp ⽂件的解析⼯作。
如采⽤ Apache 和 Tomcat 的整合⽅式,他们之间的连接⽅案有三种选择,JK、http_proxy 和 ajp_proxy。
相对于 JK 的连接⽅式,后两种在配置上⽐较简单的,灵活性⽅⾯也⼀点都不逊⾊。
但就稳定性⽽⾔不像JK 这样久经考验,所以建议采⽤ JK 的连接⽅式。
2、Connector 连接器的配置之前⽂件介绍过的 Tomcat 连接器的三种⽅式: bio、nio 和 apr,三种⽅式性能差别很⼤,apr 的性能最优, bio 的性能最差。
⽽ Tomcat 7使⽤的 Connector 默认就启⽤的 Apr 协议,但需要系统安装 Apr 库,否则就会使⽤ bio ⽅式。
3、配置⽂件优化配置⽂件优化其实就是对 server.xml 优化,可以提⼤⼤提⾼ Tomcat 的处理请求的能⼒,下⾯我们来看 Tomcat 容器内的优化。
linux tomcat jvm参数
在Linux系统下,可以通过修改Tomcat的启动脚本设置JVM参数。
具体步骤如下:
1. 打开Tomcat的启动脚本(通常是catalina.sh或catalina.bat),通常位于Tomcat安装目录下的bin文件夹中。
2. 在脚本中找到JAVA_OPTS或CATALINA_OPTS这一行,如果这一行不存在,可以在脚本开头添加一行。
3. 在该行中设置JVM参数,例如:
* -Xms512m:设置Java堆的初始大小为512MB。
* -Xmx1024m:设置Java堆的最大大小为1024MB。
* -Xss2m:设置每个线程的堆栈大小为2MB。
* -XX:MaxPermSize=256m:设置永久代的最大大小为256MB(仅适用于Java 7及更早版本)。
4. 保存并关闭启动脚本。
5. 重新启动Tomcat服务器,使设置生效。
请注意,JVM参数的具体设置取决于应用程序的需求和可用资源。
以上参数只是一个示例,您可以根据实际情况进行调整。
另外,请确保您具有足够的系统资源来支持所设置的JVM参数,以避免系统资源不足的问题。
idea启动tomcat原理
idea启动tomcat原理启动Tomcat的原理是通过执行启动脚本(startup.sh或startup.bat)来启动Tomcat服务器。
下面是启动Tomcat的简要步骤:1. 加载环境变量:启动脚本会首先加载Tomcat服务器所需的环境变量,如JAVA_HOME(指向JDK安装路径)和CATALINA_HOME(指向Tomcat安装路径)等。
2. 设置JVM参数:启动脚本会设置JVM参数,如堆大小、栈大小、垃圾收集器类型等。
这些参数可以在脚本中指定,也可以通过设置环境变量来配置。
3. 创建并启动Java进程:通过Java命令创建一个新的Java进程,该进程会加载Tomcat的启动类org.apache.catalina.startup.Bootstrap。
该类是Tomcat服务器的入口点。
4. 初始化Tomcat:Bootstrap类的main()方法会初始化Tomcat服务器。
它会创建一个Catalina实例,并调用其start()方法启动Tomcat。
5. 加载配置文件:Catalina实例在启动时会加载Tomcat的配置文件,如server.xml和web.xml。
这些配置文件包含了Tomcat服务器的各种设置,如端口号、虚拟主机、连接池等。
6. 初始化组件:Catalina实例会根据配置文件中的信息初始化Tomcat的各个组件,如Connector(用于处理网络连接)、Host(用于管理虚拟主机)、Context(用于管理Web应用程序)等。
7. 启动监听器:Catalina实例会启动一些监听器,如Connector 监听器(监听网络连接)、Host监听器(监听虚拟主机)等。
这些监听器会在相关事件发生时执行相应的操作。
8. 启动Web应用程序:Catalina实例会根据配置文件中定义的Web应用程序部署路径,加载并启动Web应用程序。
这些应用程序会被部署到Tomcat的相应目录下(如webapps目录)。
tomcat内存使用的上限
Tomcat 的内存使用上限实际上由JVM(Java 虚拟机)的堆内存设置决定,因为Tomcat 是用Java 编写的。
你可以通过设置JVM 的参数来调整Tomcat 的内存使用上限。
以下是设置Tomcat 内存上限的常见JVM 参数:
1. -Xms:指定Java 虚拟机的初始堆大小。
2. -Xmx:指定Java 虚拟机的最大堆大小。
例如,如果你希望Tomcat 的初始堆大小为512MB,最大堆大小为1024MB,可以在Tomcat 启动脚本中设置如下:
export CATALINA_OPTS="$CATALINA_OPTS -Xms512m -Xmx1024m"
或者,如果是Windows 系统,可以在`catalina.bat` 中添加:
set CATALINA_OPTS=%CATALINA_OPTS% -Xms512m -Xmx1024m
在生产环境中,确保根据应用程序的需求和服务器的硬件配置来调整这些值。
过大的堆内存可能导致频繁的垃圾回收,而过小可能导致OutOfMemory 错误。
另外,要注意的是,JVM 还有其他一些与内存相关的参数,例如:
--XX:PermSize:指定永久代的初始大小。
--XX:MaxPermSize:指定永久代的最大大小。
这两个参数通常在较早版本的Java 中使用,而在Java 8 及以后版本中被MetaSpace 取代。
建议在设置这些参数之前,仔细了解你的应用程序的内存使用情况,进行性能测试,并根据实际情况进行调整。
如何设置Java虚拟机JVM启动内存参数
如何设置Java虚拟机JVM启动内存参数Tomcat默认的Java虚拟机JVM启动内存参数⼤约只有64MB或者128MB,⾮常⼩,远远没有利⽤现在服务器的强⼤内存,所以要设置Java虚拟机JVM启动内存参数。
具体设置⽅法为:Tomcat修改TOMCAT_HOME/bin/catalina.bat,在[echo Using CATALINA_BASE: "%CATALINA_BASE%"] 上⾯加⼊,⽐如:set JAVA_OPTS= -server -Xms1536m -Xmx1536m或者JAVA_OPTS="-server -Xms1536m -Xmx1536m",服务器模式参数-server不加也可以,就变成set JAVA_OPTS= -Xms1536m -Xmx1536m或者JAVA_OPTS=" -Xms1536m -Xmx1536m",1536m只是举个例⼦,具体可以在DOS命令窗⼝中测试能使⽤多⼤的Java虚拟机内存,能显⽰JDK/JRE/JVM版本号的就说明能使⽤命令中设置的Java虚拟机内存,如执⾏Java -Xmx1280m -version;Java -Xmx1408m -version;Java -Xmx1536m -version;Java -Xmx1664m -version;Java -Xmx2048m -version;⽐如在下列DOS命令窗⼝中执⾏java -Xmx1024m -version,显⽰出JDK/JRE/JVM版本号,说明最⼤能使⽤1024MB的Java虚拟机内存:下图中执⾏Java -Xmx1152m -version,不能显⽰出JDK/JRE/JVM版本号,说明不能使⽤1152MB的Java虚拟机内存:等等,但是JVM启动内存参数也不可能⽆限增⼤,因为他受限于物理内存和操作系统的限制,Windows操作系统下⼀般可以使⽤1.6GB左右的Java虚拟机内存,有些JDK如Jrockit可能最⼤可达1.9GB左右,此外,Linux、⼩型机AIX等情况可以较⼤。
tomcat内存配置和并发数
1.内存设置Windows环境下修改“%TOMCAT_HOME%\bin\catalina.bat”文件,在文件开头增加如下设置:set JAVA_OPTS=-Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=256m-Xms设置初始化内存大小-Xmx设置可以使用的最大内存-Xmn:内存最小值,-Xmn128-256m就够了JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的内存由-Xmx 指定,默认是物理内存的1/4。
默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。
因此服务器一般设置-Xms、-Xmx相等以避免在每次GC 后调整堆的大小。
在较大型的应用项目中,默认的内存是不够的,有可能导致系统无法运行。
常见的问题是报Tomcat内存溢出错误“ng.OutOfMemoryError: Java heap space”,从而导致客户端显示500错误。
-XX:PermSize=128M-XX:MaxPermSize=256m,默认为32MPermSize/MaxPermSize:定义Perm段的尺寸,PermSize为JVM启动时Perm的内存大小;MaxPermSize为最大可占用的Perm内存大小。
PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space 中,它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的应用中有很CLASS的话,就很可能出现“ng.OutOfMemoryError: PermGen space”错误。
tomcat高并发配置与优化
tomcat⾼并发配置与优化公司的⼀个服务器使⽤Tomcat6默认配置,在后台⼀阵全点击服务器就报废了,查了⼀下就要是PERMSIZE默认值过⼩造成(16-64)TOMCAT_HOME/bin/catalina.sh添加⼀⾏:JAVA_OPTS=" -XX:PermSize=64M -XX:MaxPermSize=128m"问题解决(可能为调⽤JAR包过多原因)下⾯是⽹上看到⼀些设置JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "当在对其进⾏并发测试时,基本上30个USER上去就当机了,还要修改默认连接数设置:以下红⾊四⾏TOMCAT6中好相没有,⼿⼯加上就可以了,基本上可以解决连接数过⼤引起的死机。
具体数值可跟据实际情况设置<Connector port="80" protocol="HTTP/1.1"maxThreads="600"minSpareThreads="100"maxSpareThreads="500"acceptCount="700"connectionTimeout="20000"redirectPort="8443" />这样设置以后,基本上没有再当机过。
maxThreads="600" ///最⼤线程数minSpareThreads="100"///初始化时创建的线程数maxSpareThreads="500"///⼀旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。
tomcat性能调优方案
tomcat性能调优方案在开发和部署Web应用程序时,Tomcat是一款广泛使用的Java Servlet容器。
然而,随着业务的增长和用户量的上升,Tomcat性能问题可能会成为一个挑战。
为了确保应用程序的高效运行,我们需要采取一些性能调优措施。
本文将介绍一些Tomcat性能调优方案,以提高应用程序的性能和响应速度。
一、优化Tomcat服务器配置1. 调整内存参数:通过修改Tomcat的启动脚本‘catalina.sh’(Linux)或‘catalina.bat’(Windows),可以配置JVM的内存参数。
可以增加-Xms和-Xmx参数来增加JVM的初始堆大小和最大堆大小。
适当调整这些参数可以提高应用程序的内存管理效率,从而提高性能。
2. 调整连接器配置:Tomcat使用连接器来处理HTTP请求,可以通过调整连接器的配置参数来提高性能。
例如,调整maxThreads参数来增加同时处理请求的线程数,增加acceptCount参数来增加等待处理的请求队列长度,以及调整keepAliveTimeout参数来控制HTTP连接的持久化时间等。
二、优化应用程序代码1. 减少HTTP请求:每次HTTP请求都会消耗系统资源,并且增加网络延迟。
通过优化应用程序代码,减少不必要的HTTP请求可以提高性能。
例如,可以使用CSS sprites来减少图片加载请求,合并和压缩JavaScript和CSS文件来减少文件加载请求等。
2. 使用缓存:合理使用缓存机制可以减少对数据库和其他资源的请求次数,提高应用程序的性能。
例如,可以使用缓存技术来缓存数据库查询结果、页面片段或整个页面,以减少对数据库和服务器的访问次数。
3. 避免同步阻塞:多线程并发请求可能会导致同步阻塞,影响应用程序的性能。
通过合理使用同步机制和锁机制,避免同步阻塞可以提高性能。
例如,使用线程池来管理并发请求的线程,使用并发集合类来替代同步集合类等。
三、数据库优化1. 数据库索引优化:在使用数据库时,合理的索引设计可以大大提高查询性能。
tomcat的10个配置
1.配置系统管理〔Admin Web Application〕大多数商业化的J2EE效劳器都提供一个功能强大的管理界面,且大都采用易于理解的Web应用界面。
Tomcat按照自己的方式,同样提供一个成熟的管理工具,并且丝毫不逊于那些商业化的竞争对手。
Tomcat的Admin Web Application最初在4.1版本时出现,当时的功能包括管理context、data source、user和group等。
当然也可以管理像初始化参数,user、group、role的多种数据库管理等。
在后续的版本中,这些功能将得到很大的扩展,但现有的功能已经非常实用了。
Admin Web Application被定义在自动部署文件:CATALINA_BASE/webapps/admin.xml 。
〔译者注:CATALINA_BASE 即tomcat安装目录下的server目录〕你必须编辑这个文件,以确定Context中的docBase参数是绝对路径。
也就是说,CATALINA_BASE/webapps/admin.xml 的路径是绝对路径。
作为另外一种选择,你也可以删除这个自动部署文件,而在server.xml文件中建立一个Admin Web Application的context,效果是一样的。
你不能管理Admin Web Application这个应用,换而言之,除了删除CATALINA_BASE/webapps/admin.xml ,你可能什么都做不了。
如果你使用UserDatabaseRealm〔默认〕,你将需要添加一个user以及一个role到CATALINA_BASE/conf/tomcat-users.xml 文件中。
你编辑这个文件,添加一个名叫“admin〞的role 到该文件中,如下:<role name="admin"/>你同样需要有一个用户,并且这个用户的角色是“admin〞。
【Tomcat】Tomcat配置JVM参数步骤
【Tomcat】Tomcat配置JVM参数步骤这⾥向⼤家描述⼀下如何使⽤Tomcat配置参数,Tomcat本⾝不能直接在计算机上运⾏,需要依赖于硬件基础之上的操作系统和⼀个java虚拟机。
您可以选择⾃⼰的需要选择不同的操作系统和对应的JDK的版本,但还是推荐您使⽤Sun公司发布的JDK。
jvm在client模式,进⾏内存回收时,会停下所有的其它⼯作,带回收完毕才去执⾏其它任务,在这期间eclipse就卡住了。
所以适当的增加jvm申请的内存⼤⼩来减少其回收的次数甚⾄不回收,就会是卡的现象有明显改善。
主要通过以下的⼏个jvm参数来设置堆内存的:-Xmx512m最⼤总堆内存,⼀般设置为物理内存的1/4-Xms512m初始总堆内存,⼀般将它设置的和最⼤堆内存⼀样⼤,这样就不需要根据当前堆使⽤情况⽽调整堆的⼤⼩了-Xmn192m年轻带堆内存,sun官⽅推荐为整个堆的3/8堆内存的组成总堆内存 = 年轻带堆内存 + 年⽼带堆内存 + 持久带堆内存年轻带堆内存对象刚创建出来时放在这⾥年⽼带堆内存对象在被真正会回收之前会先放在这⾥持久带堆内存class⽂件,元数据等放在这⾥-XX:PermSize=128m持久带堆的初始⼤⼩-XX:MaxPermSize=128m持久带堆的最⼤⼤⼩,eclipse默认为256m。
如果要编译jdk这种,⼀定要把这个设的很⼤,因为它的类太多了。
Tomcat配置JVM参数Tomcat本⾝不能直接在计算机上运⾏,需要依赖于硬件基础之上的操作系统和⼀个java虚拟机。
您可以选择⾃⼰的需要选择不同的操作系统和对应的 JDK 的版本(只要是符合Sun发布的Java规范的),但我们推荐您使⽤Sun公司发布的JDK。
确保您所使⽤的版本是最新的,因为Sun公司和其它⼀些公司⼀直在为提⾼性能⽽对java虚拟机做⼀些升级改进。
⼀些报告显⽰JDK1.4在性能上⽐JDK1.3提⾼了将近10%到20%。
可以给Java虚拟机设置使⽤的内存,但是如果你的选择不对的话,虚拟机不会补偿。
Tomcat 启动参数设置
Tomcat 启动参数设置-server:一定要作为第一个参数,在多个CPU时性能佳-Xms:初始Heap大小,使用的最小内存,cpu性能高时此值应设的大一些-Xmx:java heap最大值,使用的最大内存上面两个值是分配JVM的最小和最大内存,取决于硬件物理内存的大小,建议均设为物理内存的一半。
-XX:PermSize:设定内存的永久保存区域-XX:MaxPermSize:设定最大内存的永久保存区域-XX:MaxNewSize:-Xss 15120 这使得JBoss每增加一个线程(thread)就会立即消耗15M内存,而最佳值应该是128K,默认值好像是512k.+XX:AggressiveHeap 会使得 Xms没有意义。
这个参数让jvm忽略Xmx参数,疯狂地吃完一个G物理内存,再吃尽一个G的swap。
-Xss:每个线程的Stack大小-verbose:gc 现实垃圾收集信息-Xloggc:gc.log 指定垃圾收集日志文件-Xmn:young generation的heap大小,一般设置为Xmx的3、4分之一-XX:+UseParNewGC :缩短minor收集的时间-XX:+UseConcMarkSweepGC :缩短major收集的时间提示:此选项在Heap Size 比较大而且Major收集时间较长的情况下使用更合适。
Tomcat 自身的启动设置:在%tomcat_home%/bin目录下的” catalina.bat”(Linux 环境刚为”catalina.sh”)打开编辑此文件,在”echo Using CATALINA_BASE: %CATALINA_BASE%”前加上:set JA V A_OPTS=%JA V A_OPTS% -server -Xms4096m -Xmx4096m -XX:PermSize=128M -XX:MaxPermSize=256m -XX:NewSize=256m -XX:MaxNewSize=512m完整片断如下:echo 添加 JA V A_OPTS="-server -Xms4096m -Xmx4096m -XX:PermSize=128M -XX:MaxP erSize=256m -XX:NewSize=256m -XX:MaxNewSize=512m"set JA V A_OPTS=%JA V A_OPTS% -server -Xms4096m -Xmx4096m -XX:PermSize=128M -XX:MaxPermSize=256m -XX:NewSize=256m -XX:MaxNewSize=512mecho Using CATALINA_BASE: %CATALINA_BASE%eclipse 内Tomcat设置启动:1. window -> Preferences -> Servers(myeclipse下是这个选项发用其它插件则不一样,可以找到相应的菜单) -> Tomcat 6.x(有不同的版本) –> JDK -> Optional Java VM arguments: 输入: -server -Xms4096m -Xmx4096m -XX:PermSize=128M -XX:MaxPermSize=256m -XX: NewSize=256m -XX:MaxNewSize=512m2. window -> Preferences -> Servers(myeclipse下是这个选项发用其它插件则不一样,可以找到相应的菜单) -> Tomcat 6.x(有不同的版本) -> Lanunch -> Create Launch Configurati on -> Arguments -> VM arguments:-server -Xms4096m -Xmx4096m -XX:PermSize=128M -XX:MaxPermSize=256m -XX:NewS ize=256m -XX:MaxNewSize=512m参考文章:tomcat 启动内存设置文章分类:Java编程其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
其中和最大连接数相关的参数为maxProcessors和acceptCount。如果要加大并发连接数,应同时加大这两个参数。
、
如果系统花费很多的时间收集垃圾,请减小堆大小。一次完全的垃圾收集应该不超过 3-5 秒。如果垃圾收集成为瓶颈,那么需要指定代的大小,检查垃圾收集的详细输出,研究垃圾收集参数对性能的影响。一般说来,你应该使用物理内存的 80% 作为堆大小。当增加处理器时,记得增加内存,因为分配可以并行进行,而垃圾收集不是并行的。
一般说来,你应该使用物理内存的 80% 作为堆大小。
2、连接器优化:
在tomcat配置文件server.xml中的配置中,和连接数相关的参数有:
maxThreads:
Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。默认值200。
acceptCount:
表示初始化内存为256MB,可以使用的最大内存为512MB。
另外需要考虑的是Java提供的垃圾回收机制。虚拟机的堆大小决定了虚拟机花费在收集垃圾上的时间和频度。收集垃圾可以接受的速度与应用有关,应该通过分析实际的垃圾收集的时间和频率来调整。如果堆的大小很大,那么完全垃圾收集就会很慢,但是频度会降低。如果你把堆的大小和内存的需要一致,完全收集就很快,但是会更加频繁。调整堆大小的的目的是最小化垃圾收集的时间,以在特定的时间内最大化处理客户的请求。在基准测试的时候,为保证最好的性能,要把堆的大小设大,保证垃圾收集不在整个基准测试的过程中出现。
3、tomcat中如何禁止和允许列目录下的文件
在{tomcat_home}/conf/web.xml中,把listings参数设置成false即可,如下:
<servlet>
...
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
enableLookups:
是否反查域名,默认值为true。为了提高处理能力,应设置为false
connnectionTimeout:
网络连接超时,默认值60000,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。
maxKeepAliveRequests:
保持请求数量,默认值100。
</init-param>
...
</servlet>
4、tomcat中如何禁止和允许主机或IP地址访问
<Host name="localhost" ...>
...
<Valve className="org.apache.catalina.valves.RemoteHostValve"
allow="*,[url][/url]"/>
修改属性:
-Xms64m
-Xmx128m
有人建议Xms和Xmx的值取成一样比较好,说是可以加快内存回收速度。
加大tomcat连接数:
在tomcat配置文件server.xml中的配置中,和连接数相关的参数有:
minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为10
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
gt;
...
</Host>
这是我们服务器的配置,具体文件不能给你,因为涉及到公司机密,所以那一行我给你,我拷贝下来了
JAVA_OPTS='-server -Xms512m -Xmx768m -XX:NewSize=128m -XX:MaxNewSize=192m -XX:SurvivorRatio=8'
bufferSize:
输入流缓冲大小,默认值2048 bytes。
compression:
压缩传输,取值on/off/force,默认值off。
其中和最大连接数相关的参数为maxThreads和acceptCount。如果要加大并发连接数,应同时加大这两个参数。web server允许的最大连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。
Windows下,在文件/bin/catalina.bat,Unix下,在文件/bin/catalina.sh的前面,增加如下设置:
JAVA_OPTS='-Xms【初始化内存大小】 -Xmx【可以使用的最大内存】'
需要把这个两个参数值调大。例如:
JAVA_OPTS='-Xms256m -Xmx512m'
Tomcat 5常用优化和配置
1、JDK内存优化:
Tomcat默认可以使用的内存为128MB,Windows下,在文件{tomcat_home}/bin/catalina.bat,Unix下,在文件{tomcat_home}/bin/catalina.sh的前面,增加如下设置:
JAVA_OPTS='-Xms[初始化内存大小] -Xmx[可以使用的最大内存]
maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为75
acceptCount:允许的最大连接数,应大于等于maxProcessors,默认值为100
enableLookups:是否反查域名,取值为:true或false。为了提高处理能力,应设置为false
connectionTimeout:网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。
指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。默认值10。
minSpareThreads:
Tomcat初始化时创建的线程数。默认值4。
maxSpareThreads:
一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。默认值50。
TOMCAT内存和连接数配置(转)
如果是使用的catalina.sh(linux)或Catalina.bat(win)启动的:
修改这两个文件,加上下面这句:
SET CATALINA_OPTS= -Xms64m -Xmx128m
如果使用的winnt服务启动:
打开C:\WINNT\system32\regedt32.exe,在 HKEY_LOCAL_MACHINE-->SOFTWARE-->Apache Software Foundation-->Process Runner 1.0-->Tomcat5-->Parameters