发布网友 发布时间:2022-04-20 05:13
共2个回答
热心网友 时间:2023-08-31 18:00
为了解决tomcat在进行大并发请求时,出现内存溢出的问题,请修改tomcat的内存大小,其中分为以下两种方式:一、使用catalina.bat等命令行方式运行的tomcat查看系统是否能支持所填最大内存命令:java-Xmx1024m-version,当所填值不合法时,执行该命令将报错1、修改tomcat\bin\Catalina.bat文件windows环境下:在166行左右remExecuteJavawiththeapplicableproperties地以下每行%_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%%ACTION%在%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现有内存情况的方法进行查看是否已经变更成功。二、使用系统中的逗服务地,或者开始菜单的可执行程序运行的tomcat1、关闭现在正在运行的tomcat2.1[注意][高版本tomcat配置方法]如果是tomcat5.5或者是5.0.28之后的版本,在Java选项卡中,下方,会有InitalmemoryPool:MaximummemoryPool:Threadstacksize:三个输入框,在这里即可不用做上面的操作,直接配置内存大小,只需要设置InitalmemoryPool为256MaximummemoryPool为512点击确定后,重启tomcat生效如果您是低版本的tomcat,发现没有上面那几个录入框,请看下面的操作步骤[低版本tomcat配置方法]在开始菜单中,找到逗ApacheTomcat5.0地,并选择逗ConfigureTomcat地,在弹出的对话框窗口中,切换到JavaVM选项卡,并在JavaOptions输入框的最前面输入-Xms256m-Xmx512m即输入框中的内容会像下面的代码(与自己的环境有所区别)-Xms256m-Xmx512m-Dcatalina.home="C:\tomcat5"-Djava.endorsed.dirs="C:\tomcat5\common\endorsed"-Xrs设置完后,点击逗确定地,并重启tomcat即可。三、查看现有tomcat的内存大小情况1、启动tomcat2、访问栈内存,按需分配(3)-Xss,设定每个线程的堆栈大小(4)-XX:PermSize,JVM初始分配的非堆内存(5)-XX:MaxPermSize,JVM最大允许分配的非堆内存,按需分配举例:-Xms256m-Xms512m-XX:PermSize=64m-XX:MaxPermSize=128m热心网友 时间:2023-08-31 18:01
VM管理两种类型的内存,堆和非堆。堆是给开发人员用的上面说的就是,是在JVM启动时创建;非堆是留给JVM自己用的,用来存放类的信息的。它和堆不同,运行期内GC不会释放空间。 一、内存溢出类型 1、java.lang.OutOfMemoryError: PermGen space J..