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开始的可以直

最近更新

货币银行学利息与利率课件 83页

面向大批量定制的人体假肢接受腔的数字化设计.. 2页

面向Napa命令的船舶初步设计快速建模技术研究.. 2页

阿尔茨海默病与额颞叶痴呆-课件 36页

2024年春节走访慰问信 8页

雾化吸入乌司他丁对脂多糖致兔急性肺损伤的早.. 2页

2024年春节大扫除心得体会(通用12篇) 16页

2024年春节值班感想(通用8篇) 9页

2024年春游策划书(集合15篇) 47页

阿霉素联合汉黄芩素对Burkitt淋巴瘤miRNA-155.. 2页

阻断胶质瘤细胞AKT通路对Wnt通路影响的实验研.. 2页

2024年春季中班班主任工作计划最新版 20页

闽安古镇物质遗产研究的开题报告 2页

门和卷帘耐火试验装置的设计与开发的开题报告.. 2页

2024年昆虫记读书笔记最新范文 9页

2024年早上好暖心的句子(15篇) 26页

2024年日记作文300字锦集9篇 8页

2024年无产权证车库买卖合同 5页

2024年旅行的意义作文400字8篇 9页

银行信贷对房地产泡沫生成的影响分析的开题报.. 2页

银川电信光纤接入网规划与优化的开题报告 2页

铝基石墨烯复合材料的制备及其性能研究的开题.. 2页

《同分母分数加、减法》教学设计(通用6篇) 1页

江西景德镇的导游词13篇 27页

申请行政听证申请书模板7篇 10页

太阳能空气能热水工程施工方案 16页

高速接缝式自动包装机 59页

3、我也能发明活动方案 2页

老挝语-中文对照发音(共32页) 32页

《中医诊断学》课程标准 6页