Tomcat在JAVA WEB的开发过程中经常使用,并且tomcat的内存配置是影响性能的重要工作。通常很难弄清楚在配置过程中需要在服务器上配置哪些内存指示器。有多好?这是对有相同问题的开发人员的简要回顾,以供参考。
我认为有必要从以下四个链接来了解此配置问题:JVM原理,jvm内存管理机制,jvm配置参数以及与tomcat内存相关的配置。
一、什么是JVM
JVM(JAVA虚拟机)是一种可以运行Java代码的虚拟计算机,包括字节码指令集,一组寄存器,堆栈,垃圾回收,堆和存储方法域。 JVM在操作系统上运行,它与硬件没有直接交互。 JVM是JAVA技术的组件之一。 Java技术包括四个方面:Java编程语言,Java类文件格式,Java虚拟机和Java应用程序接口(Java API)。总体结构如下:

Java技术组成
二、JVM内存管理机制
应用程序服务器启动时,应用程序引用的所有类将通过ClassLoader依次加载到内存中。 jvm的内存空间大致分为:方法区域,java堆,java堆栈和本地方法堆栈。它也总结为:堆内存,堆栈内存,静态内存区域。堆内存用于存储引用类型的数据,例如类实例和数组,也就是说,由new生成的对象存储在此处,堆栈存储器存储局部变量(例如方法参数),静态内存区域存储常量,静态变量和类元数据信息(方法,属性等)。如下图所示:


在开发过程中经常遇到的三种类型的内存溢出异常:
对三、JVM配置参数的了解
在开发过程中,您需要为tomcat配置很多内存参数。大多数参数都是相似且愚蠢的,以区分其目的和含义。这是我收集的参数和说明的简短列表:
-server:必须用作第一个参数。使用多个CPU时,性能良好。这意味着以服务模式启动,启动速度会慢一些,但性能会高得多。如果没有此参数,则默认为在客户端模式下启动。
-Xms:java堆的初始大小。默认值为物理内存的1/64。
-Xmx:Java堆的最大值。默认值为物理内存的1/4,建议将其设置为物理内存的一半。不能超过物理内存。

-XX:PermSize:设置内存永久存储区域的初始大小,默认值为64M。
-XX:MaxPermSize:设置内存永久存储区的最大大小,默认值为64M。
-XX:SurvivorRatio = 2:生存池的大小,默认值为2。如果垃圾收集成为瓶颈,则可以尝试自定义产卵池设置
-XX:NewSize:新生成的池的初始大小。默认值为2M。
-XX:MaxNewSize:新生成的池的最大大小。默认值为32M。
如果JVM的堆大小大于1GB,则应使用以下值:-XX:newSize = 640m -XX:MaxNewSize = 640m -XX:SurvivorRatio = 16,或分配总数的50%到60%新的堆大小生成的池。增加新对象区域的大小,并减少完整GC的数量。
+ XX:AggressiveHeap将使Xms失去意义。该参数使jvm忽略Xmx参数,吞噬了G的物理内存,然后吞噬了G的swap。
-Xss:每个线程的堆栈大小,“-Xss 15120”,这使JBoss的每个其他线程(线程)将立即消耗15M的内存,最佳值为128K,默认值为512k。
-verbose:gc实际垃圾收集信息
-Xloggc:gc.log指定垃圾收集日志文件
-Xmn:年轻一代的堆大小,通常设置为[m5] Xmx的四分之一
-XX:+ UseParNewGC:缩短次要收集的时间
-XX:+ UseConcMarkSweepGC:缩短主要收集的时间。当“堆大小”较大且主要收集时间较长时,此选项更合适。
-XX:userParNewGC可用于设置并行集合[多核CPU]

-XX:ParallelGCThreads可用于提高并行度[多核CPU]
-XX:设置UseParallelGC后,UseParallelGC可以使用并行清除收集器[多核CPU]
四、Tomcat内存配置
上面已经提到了很多原理,并且tomcat的实际内存配置只是几个参数。修改Tomcat的内存配置,然后打开$ TOMCAT_HOME / bin / catalina.sh文件(对于Windows系统为catalina.bat文件),如下所示:

catalina.bat是Windows上的文件,.sh是linux文件,以下仅是示例参考,具体配置值需要根据硬件进行计算:
Linux:

修改TOMCAT_HOME / bin / catalina.sh
在cygwin = false之前。
JAVA_OPTS="-server -Xms256m -Xmx512m -XX:PermSize=64M -XX:MaxPermSize=128m" windows:
修改TOMCAT_HOME / bin / catalina.bat
第一行加
JAVA_OPTS="-server -Xms256m -Xmx512m -XX:PermSize=64M -XX:MaxPermSize=128m" 以上是个人学习的总结,如有任何疑问,请指正。 DIY网站导航-云收藏夹
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-350037-1.html
家里利息为0
不容易的日子早就过去了