可信网站服务周村网站制作价格低

news/2025/9/26 9:52:11/文章来源:
可信网站服务,周村网站制作价格低,深圳中心网站建设,微商城搭建平台【高并发】高并发环境下如何防止Tomcat内存溢出#xff1f;看完我懂了#xff01;#xff01;发布时间#xff1a;2020-04-19 00:47,浏览次数#xff1a;126, 标签#xff1a;Tomcat写在前面随着系统并发量越来越高#xff0c;Tomcat所占用的内存就会越来越大#xff0…【高并发】高并发环境下如何防止Tomcat内存溢出看完我懂了发布时间2020-04-19 00:47,浏览次数126, 标签Tomcat写在前面随着系统并发量越来越高Tomcat所占用的内存就会越来越大如果对Tomcat的内存管理不当则可能会引发Tomcat内存溢出的问题那么如何防止Tomcat内存溢出呢我们今天就来一起探讨下这个问题。防止Tomcat内存溢出可以总结为两个方案一个是设置Tomcat启动的初始内存一个是防止Tomcat所用的JVM内存溢出。接下来我们就分别对这两种方案作出简单的介绍。设置启动初始内存其初始空间(即-Xms)是物理内存的1/64最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。实例以下给出1G内存环境下java jvm 的参数设置参考JAVA_OPTS-server -Xms800m -Xmx800m -XX:PermSize64M -XX:MaxNewSize256m-XX:MaxPermSize128m -Djava.awt.headlesstrue JAVA_OPTS-server -Xms768m-Xmx768m -XX:PermSize128m -XX:MaxPermSize256m -XX:NewSize192m-XX:MaxNewSize384m CATALINA_OPTS-server -Xms768m -Xmx768m -XX:PermSize128m-XX:MaxPermSize256m -XX:NewSize192m -XX:MaxNewSize384mLinux在/usr/local/apache-tomcat-7.0/bin 目录下的catalina.sh文件中添加JAVA_OPTS-Xms512m-Xmx1024m要加“m”说明是MB否则就是KB了在启动tomcat时会报内存不足。* -Xms初始值* -Xmx最大值* -Xmn最小值Windows在catalina.bat最前面加入set JAVA_OPTS-Xms128m-Xmx350m如果用startup.bat启动tomcat,OK设置生效。够成功的分配200M内存。但是如果不是执行startup.bat启动tomcat而是利用windows的系统服务启动tomcat服务,上面的设置就不生效了就是说setJAVA_OPTS-Xms128m -Xmx350m 没起作用。上面分配200M内存就OOM了。。windows服务执行的是bin\tomcat.exe。它读取注册表中的值而不是catalina.bat的设置。解决办法修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Tomcat ServiceManager\Tomcat5\Parameters\JavaOptions原值为-Dcatalina.homeC:\ApacheGroup\Tomcat 7.0-Djava.endorsed.dirsC:\ApacheGroup\Tomcat 7.0\common\endorsed -Xrs加入 -Xms300m -Xmx350m重起tomcat服务设置生效。防止所用的JVM内存溢出1.java.lang.OutOfMemoryError: Java heap space解释Heap size 设置JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heapsize的值其初始空间(即-Xms)是物理内存的1/64最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms-Xmx等选项可进行设置。Heap size 的大小是Young Generation 和Tenured Generaion 之和。提示在JVM中如果98的时间是用于GC且可用的Heap size 不足2的时候将抛出此异常信息。提示Heap Size 最大不要超过可用物理内存的80一般的要将-Xms和-Xmx选项设置为相同而-Xmn为1/4的-Xmx值。解决方法手动设置Heap size修改TOMCAT_HOME/bin/catalina.bat在“echo Using CATALINA_BASE:$CATALINA_BASE”上面加入以下代码。set JAVA_OPTS%JAVA_OPTS% -server -Xms800m -Xmx800m -XX:MaxNewSize256m setJAVA_OPTS%JAVA_OPTS% -server -Xms800m -Xmx800m -XX:MaxNewSize256m或修改catalina.sh在“echo Using CATALINA_BASE: $CATALINA_BASE”上面加入以下行JAVA_OPTS$JAVA_OPTS -server -Xms800m -Xmx800m -XX:MaxNewSize256m2.java.lang.OutOfMemoryError: PermGen space原因PermGen space的全称是Permanent Generationspace,是指内存的永久保存区域这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGenspace中它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGenspace进行清理所以如果你的应用中有很CLASS的话,就很可能出现PermGen space错误这种错误常见在web服务器对JSP进行precompile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。解决方法手动设置MaxPermSize大小修改TOMCAT_HOME/bin/catalina.bat(Linux下为catalina.sh)在代码“echo Using CATALINA_BASE: $CATALINA_BASE”上面加入以下行set JAVA_OPTS%JAVA_OPTS% -server -XX:PermSize128M -XX:MaxPermSize512m“echo Using CATALINA_BASE: $CATALINA_BASE”上面加入以下行set JAVA_OPTS%JAVA_OPTS% -server -XX:PermSize128M -XX:MaxPermSize512mcatalina.sh文件的修改如下。Java代码JAVA_OPTS$JAVA_OPTS -server -XX:PermSize128M -XX:MaxPermSize512m3.分析java.lang.OutOfMemoryError: PermGen space发现很多人把问题归因于 spring,hibernate,tomcat因为他们动态产生类,导致JVM中的permanent heap溢出。然后解决方法众说纷纭有人说升级tomcat版本到最新甚至干脆不用tomcat。还有人怀疑spring的问题在spring论坛上讨论很激烈因为spring在AOP时使用CBLIB会动态产生很多类。但问题是为什么这些王牌的开源会出现同一个问题呢那么是不是更基础的原因呢tomcat在QA很隐晦的回答了这一点我们知道这个问题但这个问题是由一个更基础的问题产生。于是有人对更基础的JVM做了检查发现了问题的关键。原来SUN的JVM把内存分了不同的区其中一个就是permenter区用来存放用得非常多的类和类描述。本来SUN设计的时候认为这个区域在JVM启动的时候就固定了但他没有想到现在动态会用得这么广泛。而且这个区域有特殊的垃圾收回机制现在的问题是动态加载类到这个区域后gc根本没办法回收对于以上两个问题我的处理是在catalina.bat的第一行增加set JAVA_OPTS-Xms64m -Xmx256m -XX:PermSize128M -XX:MaxNewSize256m-XX:MaxPermSize256m在catalina.sh的第一行增加JAVA_OPTS -Xms64m -Xmx256m -XX:PermSize128M -XX:MaxNewSize256m-XX:MaxPermSize256m写在最后如果觉得文章对你有点帮助请微信搜索并关注「 冰河技术 」微信公众号跟冰河学习高并发编程技术。最后附上并发编程需要掌握的核心技能知识图祝大家在学习并发编程时少走弯路。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/918068.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云主机如何做网站宜宾建设教育培训中心网站

YOLO v3可以说是单阶段检测器中的佼佼者,融合了多个框架的优势,在保持模型简洁性的同时,性能上也在当时达到了stoa。YOLO v3的主干网络是darknet-53的前面的52层,所以它是一个全卷积网络,并且为了降低池化带来的梯度负…

鸿蒙自定义弹出框响应式更新数据

鸿蒙自定义弹出框响应式更新数据1.原因: openCustomDialog不支持自定义组件使用@Reusable、@Link、@Provide、@Consume等装饰器,来同步弹出框弹出的页面与ComponentContent中自定义组件的状态 2.解决class Params { …

CCS开发环境和TMS320系列DSP实现IP-IQ谐波与无功电流检测

CCS开发环境和TMS320系列DSP实现IP-IQ谐波与无功电流检测一、系统架构设计 1. 硬件组成 +-------------------+| 三相电网 || (电压/电流互感器) |+--------+----------+|v +-------------------+ +---…

深入解析:Python数据分析:求矩阵的秩。啥是矩阵秩?听故事学线代并用Python实现,娘来太容易学会了!

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

多机动模型PHD滤波算法

一、算法框架与核心思想 多机动模型PHD(Probability Hypothesis Density)滤波结合了交互多模型(IMM)与概率假设密度滤波的优势,通过动态模型切换实现多机动目标跟踪。 关键特性:多模型交互:每个粒子携带模型索引…

Navicat17无限试用重置14天

若navicat 17安装后无法正常注册,则可以尝试以下方法。 把以下文本另存为.bat文件,每次执行,都会将试用剩余天数重置为14天,实现无限试用的目的。 本脚本主要以测试学习为目的用后请及时删除,如果需要请购买正版.…

基于Electron的Web打印解决方案:web-print-pdf技术分享

引言 在Web应用开发中,打印功能一直是一个令人头疼的问题。传统的Web打印方案存在样式丢失、兼容性差、功能单一等诸多痛点。最近偶然发现了一个名为web-print-pdf的npm包,在调查了几款常见的Web打印实现后,发现大多…

CF455D Serega and Fun

洛谷传送 看起来很能分块啊!然后一个分块吧唧一下拍上去就过了。 好的我们还是来看看平衡树做法。 我们考虑每次操作是什么。发现其实是把 \(a_r\) 的位置移到了 \(a_l\) 的前面,\(a_i\sim a_{r-1}\) 内的所有元素向…

实验任务1

实验任务1实验任务11 #include<stdio.h> 2 int main() 3 { 4 printf(" O \n"); 5 printf("<H>\n"); 6 printf("I I\n"); 7 return 0; 8 }View Code 截图task 21 #include&l…

实验任务

实验任务实验任务11 #include <stdio.h>2 int main()3 {4 printf(" O \n");5 printf("<H>\n");6 printf("I I\n");7 printf(" O \n");8 pri…

61.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--新增功能--提取金额 - 实践

61.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--新增功能--提取金额 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important…

使用 Ansible 部署 Elasticsearch 集群

使用 Ansible 部署 Elasticsearch 集群1. 集群规划 1.1 服务器列表IP 主机名 内存(GB) CPU核数 磁盘 操作系统 CPU 架构 备注11.0.0.11 arc-dev-dc01 8 1 500GB CentOS 7.9.2009 x86_64 Ansible 管理机,无法访问互联…

免费无广告!这款开源工具让文件转换像复制粘贴一样简单!

FileConverter —— 一个非常简单的工具,通过使用 Windows 资源管理器的上下文菜单转换和压缩一个或多个文件。大家好,我是 Java陈序员。 之前,给大家介绍一款格式转换全能王,支持超过一千多种的文件格式转换。 格…

时序InSAR形变结果合并操作说明 - ENVI

采用PS-InSAR或SBAS-InSAR对同一个地区得到不同时间段内的形变结果,有时候我们需要将这些不同时间段内形变结果进行合并,得到以最早时间点为基准、覆盖整个时间跨度的形变结果。 SARscape从5.5.3版本开始提供栅格或矢…

建设网站的基本技术网络规划设计师教程pdf

主题 进程同步与进程互斥 01进程同步 问题在多道批处理系统中&#xff0c;多个进程是并发执行的&#xff0c;而并发执行的进程具有异步性&#xff0c;也就是说&#xff0c;各个进程以各自独立的、不可预知的速度向前推进。这样会带来什么问题呢&#xff1f;如果有 AB…

北京建网站需要多少钱动漫网站html

一、 python语法 1. 请说一下你对迭代器和生成器的区别&#xff1f; 2. 什么是线程安全&#xff1f; 3. 你所遵循的代码规范是什么&#xff1f;请举例说明其要求&#xff1f; 4. Python中怎么简单的实现列表去重&#xff1f; 5. python 中 yield 的用法…

深圳seo网站优化公司360公司官网首页

Unity3D 小案例 像素贪吃蛇 第二期 蛇的觅食 像素贪吃蛇 食物生成 在场景中创建一个 2D 正方形&#xff0c;调整颜色&#xff0c;添加 Tag 并修改为 Food。 然后拖拽到 Assets 文件夹中变成预制体。 创建食物管理器 FoodManager.cs&#xff0c;添加单例&#xff0c;可以设置…

网站建设软硬件要求江西省建设招标网站

一 ISN序列号探究 本文主要探究三次握手建立TCP连接的细节备注&#xff1a; 某些问题探究的比较深入,当前用不到,暂时通过链接引入进来吃水不忘挖井人&#xff1a; 小林 coding ① 初始序列号 ISN 是如何随机产生的 ISN: 初始化序列号 Initial Sequence Number 接收方和…

在Vue.js中设置方法时访问$vuetify实例

在Vue.js中访问 $vuetify实例通常意味着你正在使用Vuetify框架,它是一个流行的Vue.js的UI框架。要在Vue组件的方法中访问 $vuetify实例,通常是在组件的实例方法中通过 this关键字来实现。 例如,你可能会在Vue组件中…

纷享销客CRM任务系统:破解快消品终端动销管理难题

品牌商自有销售人员做动销,成本越来越高,雇不起那么多人,转而与经销商合作,但如何让他们的销售更主动、更多地卖自己的产品呢? 一线人员到底有没有按时拜访?陈列合不合格?促销有没有执行到位?看不见、摸不着、…