1 / 18
文档名称:

tomcat内存调优.docx

格式:docx   大小:1,410KB   页数:18页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

tomcat内存调优.docx

上传人:63229029 2017/10/14 文件大小:1.38 MB

下载得到文件列表

tomcat内存调优.docx

相关文档

文档介绍

文档介绍:前言
Tomcat、Jetty、GlassFish 等等这系列 Web容器/应用服务器,虽然做为容器,提供的是一个 Java Web 的运行时环境,以支持Servlet/JSP 等等这些内容的运行,但我们都很清楚,其本质上还是一个 Java 应用程序。每次对于容器的启动运行,都是把这个 Java 程序跑起来,来实现 Web 容器的能力。
做为一类“特殊”的 Java 应用程序,和任务其他的 Java 应用一样,需要使用到JVM,会有堆,会使用到垃圾回收,会涉及到不同的堆分区比例...
因此在对Web 容器( 应用服务器) 的调优中必不可少的是对于 JVM 的调优。
对于 JVM 的调优,主要有两个方面考虑:
内存大小配置
垃圾回收算法选择
当然,确切的说,以上两点并不互相独立,内存的大小配置也会影响垃圾回收的执行效率。
其中内存大小配置,最主要做的有
确定内存占用的总大小
确定内存中各个代(Gen) 的大小划分
其它说明:
1)堆(Heap)和非堆(Non-heap)内存
按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。
可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给自己用的,
所以方法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法的代码都在非堆内存中。
2)tomcat内存溢出
Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,轻微时,会使系统性能急剧下降,严重时,将导致系统无法运行,影响系统的稳定性。当内存不够用时,常见的问题就是报tomcat内存益处错误,从儿导致客户端包500错误的,如下:解决方法主要是加大TOMCAT可利用内存,并在程序当中加大内存使用。因此根据应用的需求,有必要调整JVM使用内存的大小。
内存大小配置
所谓内存大小的占用,是指应用程序启动后稳定运行一小段时间时,观察到的内存占用情况。
以 HotSpot 虚拟机为例,Java 堆主要有三个空间:新生代、老年代和永久代。
根据不同应用的特别,观察应用对于内存的占用,如果有大量的临时对象,不会重复使用,则可以调整 New Gen, 这样这些临时对象就在新生代创建完成,并在 Minor GC 产生时被回收,这样较短生存活的对象不会晋升到老年代,从而可以避免垃圾堆集产生 Full GC。
理想状态下,短期存活的对象都只在新生代完成生命周期,被费时劲少的Minor GC 回收完成,而长期存活,将会多次使用的在多次回收之后晋升到老年代, 最终经过 Full GC 完成生命周期。
这里涉及到关于内存大小的调整参数有:
-Xms
-Xmx
这两个参数用于配置 heap 的起始大小和最大值。这里需要经过观察,找一个合适的值,设置太大会导致内存浪费,同时也会导致垃圾回收耗时太长。对于 Tomcat 来说,一般都会将初始值和最大值设置为相同值,这样就避免在初始内存不足时触发 Full GC 来进行扩展内存。
设定 heap 大小之后,要根据对象生命周期的特征,来调整新生代与老年代的大小比例。
涉及到的参数有:
-XX:NewSize #直接指定新生代堆内存初始大小
-XX:NewRatio #设置新生代所占比例方式
-XX:MaxNewSize
-Xmn
第一个是直接设置新生代初始大小,第二个是设置比例(Ratio)。太高或太低都会导致 GC 不能高效的工作。毕竟 Minor GC 也是要耗时的。最后一个设置新生代的初始值和最大值相同,堆空间的变化不影响其值。
对于使用了大量第三方类库的应用来说,会加载许多框架依赖的类,使用过程中可能会遇到因为Perm Gen 不足产生的 OOM,这种情况可以通过观察稳定状态下 Perm 区的占用,再通过参数设置。
-XX:PermSize
-XX:MaxPermSize
-XX:MaxMetaspaceSize
第一个会设置Perm(永生代)区的初始大小,第二个用于设置Perm 区的最大值。在Java 8的时候,Perm 区被移除,改为Metaspace,不过如果遇到类似的OOM,依然可以调整其大小。
此外,对于使用大量线程的应用,也可以配置-Xss,主要用于设置单个线程的stack 大小。注意,是单个的大小,因此设置值越大,会占用越大,可用的线程数也就越少。
这里的配置一般对于-X开始的可以直

最近更新

洛阳市重点中学2023年初中语文毕业考试模拟冲.. 15页

湖北省随州市高新区市级名校2024届中考联考生.. 11页

湖南省长沙市雅礼中学2023年中考化学五模试卷.. 12页

福建省新2022-2023学年高三一诊考试物理试卷含.. 16页

贵州省兴义市2023届中考化学模拟试题含解析 13页

陕西省西安市碑林区西北工业大附属中学2022-2.. 17页

黑龙江省安达市田家炳高级中学2023年英语高三.. 15页

基层教育培训方案 6页

培训广告策划营销方案 5页

高中军训作文(精选15篇) 21页

食品企业实习报告(通用4篇) 9页

阅读经典的演讲稿(精选5篇) 6页

采购年终工作总结(通用3篇) 4页

走在成长的路上作文(通用10篇) 8页

读《海伦凯勒》有感(通用7篇) 7页

观察写作文(通用2篇) 2页

置业顾问工作计划(精选14篇) 22页

精选幼儿园说课稿大班范文汇总7篇 25页

高考历史一轮复习64练 板块2 第6单元 训练15 .. 4页

秋天的遐想作文(精选13篇) 14页

电子商务专业的学生自荐书(精选3篇) 4页

玩具采购合同(精选2篇) 6页

炼铁实习报告(精选3篇) 8页

汽车维修质量服务月活动总结(通用3篇) 8页

模板实习报告(精选9篇) 33页

有关寒假生活作文400字锦集7篇 6页

暑假的随笔(通用8篇) 11页

旅游服务合同(精选11篇) 47页

教师辞职报告(精选7篇) 9页

描写植物的小学生作文汇总八篇(精选7篇) 6页