如何修改和查看tomcat内存大小

合集下载

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个线程池。

Liunx下Tomcat调优指南

Liunx下Tomcat调优指南

Liunx下Tomcat调优指南1概述由于Tomcat的运行依赖于JVM,从虚拟机的角度我们把Tomcat的调整分为外部环境调优和自身调优两类来描述。

2调优方案1.1外部环境调优1)操作系统性能优化对于操作系统优化来说,是尽可能的增大可使用的内存容量、提高CPU的频率,保证文件系统的读写速率等。

经过压力测试验证,在并发连接很多的情况下,CPU的处理能力越强,系统运行速度越快。

对于并发数很大的情况来说,带宽也是影响系统性能的一个重要指标,因此要实现系统的快速响应,必须拥有较高的带宽。

建议使用64位操作系统,如果是32位操作系统,建议使用企业版。

2)JAVA虚拟机性能优化Tomcat需要依赖Java虚拟机运行。

根据客户选用的主机的操作系统选择对应的JDK 的版本。

无论哪个厂商的JDK,都建议使用最新的版本。

虚拟机可通过命令行的方式改变虚拟机使用内存的大小。

如下表所示有两个参数用来设置虚拟机使用内存的大小。

Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,需要调大。

Windows下,在文件% TOMCAT_HOME %/bin/catalina.bat,Unix下,在文件$TOMCAT_HOME/bin/catalina.sh的前面,增加如下设置:JAVA_OPTS=’-Xms【初始化内存大小】-Xmx【可以使用的最大内存】’需要把这个两个参数值调大。

例如:JAVA_OPTS='-Xms256m -Xmx512m',表示初始化内存为256MB,可以使用的最大内存为512MB。

另外需要考虑的是Java提供的垃圾回收机制。

虚拟机的堆大小决定了虚拟机花费在收集垃圾上的时间和频度。

收集垃圾可以接受的速度与应用有关,应该通过分析实际的垃圾收集的时间和频率来调整。

如果堆的空间很大,那么完全垃圾收集(FULL GC)就会很慢,但是频度会降低。

如果在客户系统中把堆的大小和内存的需要一致,完全收集就很快,但是会更加频繁。

tomcat常用的调优参数

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内存配置及配置参数详解

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,是指内存的永久保存区域。

应用服务器_JVM内存设置

应用服务器_JVM内存设置

应用服务器(Tomcat) JVM内存设置你对Tomcat JVM内存设置是否了解,本文向大家介绍一下Linux和Windows操作系统下Tomcat JVM内存设置方法,希望对你的学习有所帮助。

1.Linux下修改Tomcat JVM内存设置:要添加在Tomcat的bin下catalina.sh里,位置cygwin=false前。

注意引号要带上,红色的为新添加的。

# OS specific support. $var _must_ be set to either true or false.JAVA_OPTS="-Xms256m -Xmx512m -Xss1024K -XX:PermSize=128m-XX:MaxPermSize=256m"cygwin=false注意:Linux下面使用【chomd –x /目录/*.sh】将修改的sh文件赋予给当前用户,否则回报Cannot find ./catalina.sh2.Windows下修改Tomcat JVM内存设置:情况一:解压版本的Tomcat,要通过startup.bat启动Tomcat才能加载配置要添加在Tomcat的bin下catalina.bat里rem GuessCATALINA_HOMEifnotdefined set CURRENT_DIR=%cd%后面添加,红色的为新添加的。

rem Guess CA TALINA_HOME ifnotdefined set CURRENT_DIR=%cd%set JA V A_OPTS =-Xms256m-Xmx512m -XX:PermSize=128M-XX:MaxNewSize=256m -XX:MaxPermSize=256m-Djava.awt.headless=true情况二:安装版的Tomcat下没有catalina.batwindows服务执行的是bin\Tomcat.exe.他读取注册表中的值,而不是catalina.bat的设置。

Tomcat并发优化、内存配置、垃圾回收、宕机预防

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 一些调优设置内存和连接数公司的一个服务器使用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线程。

设置JVM参数,查看堆大小

设置JVM参数,查看堆大小

设置JVM参数,查看堆⼤⼩1.在eclipse设置JVM参数打开eclipse-窗⼝-⾸选项-Java-已安装的JRE(对在当前开发环境中运⾏的java程序皆⽣效,也就是在eclipse中运⾏的java程序)编辑当前使⽤的JRE,在缺省VM参数中输⼊:-Xmx1024m -Xms1024m -Xmn256m -Xss16m或者在运⾏⼀个java程序的时候执⾏:java -Xmx1024m -Xms1024m -Xmn256m -Xss16m TestTest是⼀个class⽂件。

2. 在Tomcat服务器上设置JVM参数set CATALINA_OPTS=-Xmx512m -Xms512m -Xmn64m -Xss2m或者set JAVA_OPTS=-Xmx512m -Xms512m -Xmn64m -Xss2m设置CATALINA_OPTS 和 JAVA_OPTS都是⼀个道理,在启动tomcat的时候设置参数。

两者区别是JAVA_OPTS在tomcat停⽌的时候也会执⾏这个命令。

注意:Tomcat分为安装版(*.exe)和⾮安装版或者解压版(*.zip),个⼈还是⽐较喜欢解压版。

两者虽然在功能上没有什么区别,但是在设置上还是有要注意的地⽅。

这⾥只谈JVM设置要注意的地⽅。

安装版:windows的服务会有⼀个tomcat服务,当启动服务的时候Tomcat会从注册表读取JVM的参数。

也就是说当在tomcat的lib⽂件夹下catalina.bat或者startup.bat中设置JVM参数是⽆效的。

解决办法:设置tomcat的注册表;或者使⽤startup.bat启动tomcat。

解压版:当点击startup.bat时,它会读取catalina.bat中的配置,不管在startup.bat⽂件还是在catalina.bat⽂件中设置JVM参数,都会读取JVM参数。

3. 查看堆的⼤⼩在程序中查看,返回值单位是字节,当然还有其他JVM参数可以查看。

如何修改和查看tomcat内存大小

如何修改和查看tomcat内存大小

为了解决tomcat在大进行大并发请求时,出现内存溢出的问题,请修改tomcat的内存大小,其中分为以下两种方式:一、使用catalina.bat 等命令行方式运行的tomcat查看系统最大支持内存命令:java -Xmx1024m -version1、修改tomcat\bin\Catalina.bat 文件windows环境下:在166行左右rem Execute Java with the applicable properties ”以下每行%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS%-Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%"-Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%"-Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTI ON%在%DEBUG_OPTS% 后面添加-Xms256m -Xmx512mlinux环境下:打开在Tomcat的安装目录的bin文件的catalina.sh文件,进入编辑状态.在注释后面加上如下脚本: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 指定类空间(用于加载类)的内存大小保存后,重新以命令行的方式运行tomcat ,即可,然后通过最后面介绍的如何观察tomcat现有内存情况的方法进行查看是否已经变更成功。

tomcat 设置缓存大小

tomcat 设置缓存大小

tomcat 设置缓存大小java的运行平台JVM(java虚拟机)在一个应用程序启动的时候,虚拟机都要分配一个最的内存和最小内存给他的。

对于内存吃内存狂的JAVA来说,这个初始内存和最大内存在一定程度会对应用程序的性能产生很大的影响。

比如说在我们的应用程序用到JVM给的这个最大内存配额的时候,JVM就不得不先停下我们的应用程序的工作,去寻找可以回手的垃圾(释放已经无用的对象占用的内存),释放被占用的一些内存。

一般我们为了自己配额的这个最大值和最小值都是在启动java程序的时候加参数:-Xms -Xmx来调整应用程序的初始内存和最大内存,其中Xms代表最小配额,Xmx代表最大配额。

在前段时间,我用resin的时候启动文件里面还好设置这两个参数,但是换了tomcat以后就不一样了,tomcat的启动并不是普通的java程序那样,是经过了封装的,所以在设置这两个参数的时候还有写麻烦,不过只要是java程序,总有地方可以设置这个参数的。

在查找了一些资料以后终于搞定了,可以通过下面这两种方法来解决:1. 就需要在环境变量中加上TOMCAT_OPTS, CATALINA_OPTS两个属性,如SET CATALINA_OPTS= -Xms64m -Xmx512m;ms是最小的,mx是最大,64m, 512m分别是指内存的容量.2. 修改Catalina.bat文件在166行“rem Execute Java with the applicable properties ”以下每行%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%"-Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCL ASS% %CMD_LINE_ARGS% %ACTION% 中的%CATALINA_OPTS% 替换成-Xms64m -Xmx512me.gupdate file :\tomcat\bin\catalina.batupdate the lineset JAVA_OPTS=-Xmx256M -Xms64Mmeans max cache & min cache================================================== ===============================Tomcat 5.5端口设置为了与IIS的端口区别开来,Tomcat默认的端口是8080。

tomcat报错:虚拟内存不足,启动失败;页面文件太小,无法完成操作

tomcat报错:虚拟内存不足,启动失败;页面文件太小,无法完成操作

tomcat报错:虚拟内存不足,启动失败;页面文件太小,无法
完成操作
服务器上安装了tomcat和jdk后,tomcat总是启动失败,错误日志显示:虚拟内存不足,启动失败,或者是:Error 0x800705af: 页面文件太小,无法完成操作。

后一种错误其实和前一种是一样的,只是不同的电脑系统可能显示不同。

解决办法:增大虚拟内存
步骤:
1、右键点【我的电脑】-【属性】-【高级】选项卡,
2、在【性能】栏内点【设置】-继续点【高级】选项卡,
3、在【虚拟内存】栏内点【更改】-弹出【虚拟内存】对话框,就可以设置了。

4、单选【自定义大小】,在【初始大小】里设置1024,在【最大值】里设置2048(不能超过32位操作系统的内存寻址范围——4GB)。

最后点一下【设置】可生效。

如有必要,可重启电脑。

建议将虚拟内存移动到除C盘之外的其它盘,例如D盘。

以减轻对系统盘的压力。

方法:仍在【虚拟内存】对话框,点击C盘卷标,单选【无分页大小】。

再选D盘卷标,单选【自定义大小】,设置【初始大小】和【最大值】即可。

虚拟内存最大值一般设置为物理内存的2倍。

linux tomcat jvm参数

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参数,以避免系统资源不足的问题。

tomcat内存使用的上限

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 取代。

建议在设置这些参数之前,仔细了解你的应用程序的内存使用情况,进行性能测试,并根据实际情况进行调整。

tomcat cachemaxsize设置规则

tomcat cachemaxsize设置规则

tomcat cachemaxsize设置规则在Tomcat中,`cachemaxsize` 不是一个直接的配置属性,而是在与缓存有关的一些组件中的一个可能用于设置缓存大小的属性。

以下是一些与缓存相关的配置属性和组件,以及它们的设置规则:1. Tomcat 缓存配置:在Tomcat 的`server.xml` 文件中,你可以配置各种缓存组件,如静态资源缓存、会话缓存等。

这些组件中的一些可能涉及到设置缓存大小的属性。

以下是一些相关的配置示例:```xml<!--示例:静态资源缓存--><Context docBase="/your/web/application" path="/" reloadable="true"><Resources cachingAllowed="true" cacheMaxSize="100000" /></Context>```2. Tomcat 会话管理器配置:如果你使用Tomcat 进行会话管理,那么`Manager` 组件可能包含缓存大小的设置。

以下是一个示例:```xml<!--示例:会话管理器配置--><Manager className="org.apache.catalina.session.PersistentManager"maxIdleBackup="1"><!--可能包含其他与缓存相关的属性--></Manager>```具体的`cacheMaxSize` 的设置规则取决于你的具体需求和应用场景。

一般来说,它表示缓存的最大容量,可以根据应用的大小和性能要求进行调整。

3. 其他组件配置:除了上述的示例之外,还可能有其他组件,如缓存过滤器、类加载器等,它们可能也包含`cacheMaxSize` 相关的属性。

查看TOMCAT内存使用情况(总结)

查看TOMCAT内存使用情况(总结)

查看TOMCAT内存使用情况(总结)您可以用把下列代码放在一个JSP文件中,如写入memory.jsp,放到你的TOMCAT下的任何一应用中,就可以看到你的TOMCAT总大可使用多少内存,已经使用了多少.<%--Document : memoryCreated on : 2009-4-9, 1:35:17Author : Administrator--%><%@page contentType="text/html" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"""><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>JVM memory</title></head><body><%double total = (Runtime.getRuntime().totalMemory()) / (1024.0 * 1024);double max = (Runtime.getRuntime().maxMemory()) / (1024.0 * 1024);double free = (Runtime.getRuntime().freeMemory()) / (1024.0 * 1024);out.println("Java 虚拟机试图使用的最大内存量(当前JVM的最大可用内存)maxMemory(): " + max + "MB<br/>");out.println("Java 虚拟机中的内存总量(当前JVM占用的内存总数)totalMemory(): " + total + "MB<br/>");out.println("Java 虚拟机中的空闲内存量(当前JVM空闲内存)freeMemory(): " + free + "MB<br/>");out.println("因为JVM只有在需要内存时才占用物理内存使用,所以freeMemory()的值一般情况下都很小,<br/>" +"而JVM实际可用内存并不等于freeMemory(),而应该等于maxMemory()-totalMemory()+freeMemory()。

TOMCAT内存大小调整

TOMCAT内存大小调整

TOMCAT内存大小调整一、tomcat内存设置问题在使用Java程序从数据库中查询大量的数据或是应用服务器(如tomcat、jboss,weblogic)加载jar包时会出现ng.OutOfMemoryError异常。

这主要是由于应用服务器的内存不足引起的。

这种异常常有以下几种情况(以下以tomcat环境为例,其它WEB服务器如jboss,weblogic等是同一个道理):1. ng.OutOfMemoryError: PermGen spacePermGen space的全称是Permanent Generation space,是指内存的永久保存区域OutOfMemoryError: PermGen space。

从文字上看就是内存溢出,解决方法是加大内存。

为什么会内存溢出,这是由于这块内存主要是被JVM存放Class和Meta信息的,Class在被Load的时候被放入PermGen space区域,它和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS 的话,就很可能出现PermGen space错误。

这种错误常见在web服务器对JSP进行pre compile的时候。

如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。

解决方法:手动设置MaxPermSize大小a.如果tomcat是以bat方式启动的,则如下设置:修改TOMCAT_HOME/bin/catalina.sh在“echo "Using CATALINA_BASE:$CATALINA_BASE"”上面加入以下行:JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128mb.如果tomcat是注册成了windows服务,以services方式启动的,则需要修改注册表中的相应键值。

tomcat

tomcat
Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访 问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。对于一个初学者来说,可以这样认为,当 在一台机器上配置好Apache服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实 际上Tomcat是Apache服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat时,它实际上作为一个与 Apache独立的进程单独运行的。
举个例子,如果我们想部署一个名叫MyWebApp.
(Virtual Hosts)
关于server.xml中“Host”这个元素,只有在设置虚拟主机的才需要修改。虚拟主机是一种在一个web服务 器上服务多个域名的机制,对每个域名而言,都好象独享了整个主机。实际上,大多数的小型商务网站都是采用 虚拟主机实现的,这主要是因为虚拟主机能直接连接到Internet并提供相应的带宽,以保障合理的访问响应速度, 另外虚拟主机还能提供一个稳定的固定IP。
tomcat
Web应用服务器
01 名称由来
0 配置方法 06 安全启动
Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由 Apache、Sun和其他一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和JSP规范总是 能在Tomcat中得到体现,Tomcat 5支持最新的Servlet 2.4和JSP 2.0规范。因为Tomcat技术先进、性能稳定, 而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为比较流行的Web应用服务器。
名称由来
Tomcat最初是由Sun的软件架构师詹姆斯·邓肯·戴维森开发的。后来他帮助将其变为开源项目,并由Sun贡 献给Apache软件基金会。由于大部分开源项目O'Reilly都会出一本相关的书,并且将其封面设计成某个动物的素 描,因此他希望将此项目以一个动物的名字命名。因为他希望这种动物能够自己照顾自己,最终,他将其命名为 Tomcat(英语公猫或其他雄性猫科动物)。而O'Reilly出版的介绍Tomcat的书籍(ISBN 0-596-00318-8)的封 面也被设计成了一个公猫的形象。而Tomcat的Logo兼吉祥物也被设计为一只公猫。

tomcat status参数

tomcat status参数

tomcat status参数
Apache Tomcat提供了各种status参数用于监控和调试,其中包括以下几个常见的参数:
1. Free memory: 显示空闲内存的大小。

2. Total memory: 显示总内存的大小。

3. Max memory: 显示最大内存的大小。

4. Current thread count: 显示当前运行的线程数。

5. Max processing time: 显示最大CPU时间。

6. Processing time: 显示CPU消耗总时间。

7. Request count: 显示请求总数。

8. Error count: 显示错误的请求数。

9. Bytes received: 显示接收字节数。

10. Bytes sent: 显示发送字节数。

这些参数通常可以在Tomcat的Manager App控制台或Server Status控制台上找到,它们可以提供关于Tomcat性能和资源使用情况的详细信息,从而帮助开发人员和系统管理员进行故障排除和性能优化。

tomcat性能调优方案

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详细配置步骤

tomcat详细配置步骤

tomcat详细配置步骤版本:tomcat6.0第一步:下载jdk和tomcat:JDK下载Tomcat下载最新的jdk为1.6.10,tomcat为6.0,建议jdk1.4以上,tomcat4.0以上第二步:安装和配置你的jdk和tomcat:执行jdk和tomcat的安装程序,然后设置按照路径进行安装即可。

1.安装jdk以后,需要配置一下环境变量,在我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量(假定你的jdk安装在C:\Program Files\Java):JAVA_HOME=C:\Program Files\Java\jdk1.6.0_10classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(.;一定不能少,因为它代表当前路径)path=%JAVA_HOME%\bin接着可以写一个简单的java程序来测试JDK是否已安装成功:public class Test{public static void main(String args[]){System.out.println("This is a test program.");}}将上面的这段程序保存为文件名为Test.java的文件。

然后打开命令提示符窗口,cd到你的Test.java所在目录,然后键入下面的命令javac Test.javajava Test此时如果看到打印出来This is a test program.的话说明安装成功了,如果没有打印出这句话,你需要仔细检查一下你的配置情况。

2.安装Tomcat后,在我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量(假定你的tomcat安装在c:\tomcat):CATALINA_HOME:c:\tomcatCATALINA_BASE:c:\tomcatTOMCAT_HOME: C:\Tomcat然后修改环境变量中的classpath,把tomat安装目录下的common\lib下的servlet.jar追加到classpath中去,修改后的classpath 如下:classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\common\lib\servlet-api.jar; 【注意最新版本的Tomcat中可能没有common这个文件夹了。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

如何修改和查看tomcat内存大小
为了解决tomcat在大进行大并发请求时,出现内存溢出的问题,请修改tomcat的内存大小,其中分为以下两种方式:
一、使用catalina.bat 等命令行方式运行的tomcat
查看系统最大支持内存命令:java -Xmx1024m -version
1、修改tomcat\bin\Catalina.bat 文件
windows环境下:
在166行左右
rem Execute Java with the applicable properties ”以下每行
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS%
-Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%"
-Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%"
-Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTI ON%
在%DEBUG_OPTS% 后面添加-Xms256m -Xmx512m
linux环境下:
打开在Tomcat的安装目录的bin文件的catalina.sh文件,进入编辑状态.
在注释后面加上如下脚本:
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 指定类空间(用于加载类)的内存大小
保存后,重新以命令行的方式运行tomcat ,即可,然后通过最后面介绍的如何观察tomcat现有内存情况的方法进行查看是否已经变更成功。

二、使用系统中的“服务”,或者开始菜单的可执行程序运行的tomcat
1、关闭现在正在运行的tomcat
2.1 [注意]
[高版本tomcat配置方法]
如果是tomcat 5.5 或者是 5.0.28 之后的版本,在Java 选项卡中,下方,会有
Inital memory Pool:
Maximum memory Pool:
Thread stack size:
三个输入框,在这里即可不用做上面的操作,直接配置内存大小,只需要设置
Inital memory Pool 为256
Maximum memory Pool 为512
点击确定后,重启tomcat 生效
如果您是低版本的tomcat,发现没有上面那几个录入框,请看下面的操作步骤
[低版本tomcat配置方法]
在开始菜单中,找到“Apache Tomcat 5.0”,并选择“Configure Tomcat”,在弹出的对话框窗口中,切换到Java VM 选项卡,并在Java Options 输入框的最前面输入
-Xms256m -Xmx512m
即输入框中的内容会像下面的代码(与自己的环境有所区别)
-Xms256m -Xmx512m
-Dcatalina.home="C:\tomcat5"
-Djava.endorsed.dirs="C:\tomcat5\common\endorsed"
-Xrs
设置完后,点击“确定”,并重启tomcat即可。

三、查看现有tomcat的内存大小情况
1、启动tomcat
2、访问http://localhost:8080/manager/status ,并输入您在安装tomcat时输入的用户与口令,如admin ,密码admin(密码是您在tomcat安装时输入的)
注:添加用户,修改conf/tomcat-users.xml
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager"/>
<role rolename="admin"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
<user username="admin" password="admin" roles="admin,manager"/>
</tomcat-users>
3、进入了Server Status页面,可以在JVM表格中看到
Free memory: 241.80 MB Total memory: 254.06 MB Max memory: 508.06 MB 上面的文字即代表了,当前空闲内存、当前总内存、最大可使用内存三个数据。

确定了最大内存足够大时,tomcat即可正常运转。

相关文档
最新文档