服务器上的Linux中Tomcat有时会挂掉的问题及方法

QUESTION:服务器上的Linux中Tomcat有时会挂掉的问题及方法?

 

目录

QUESTION:服务器上的Linux中Tomcat有时会挂掉的问题及方法?

ANSWER:

一、内存不足

二、服务器内存不足

三、解决方法

3.1Tomcat内存优化

3.2代码优化内存泄漏


ANSWER:

 

正在启动的tomcat服务器,突然间挂掉,有时运行的好好的,分析了以下原因:

一、内存不足

 

本博主是在阿里云购买的云服务器,2G运行内存,开启了apache、tomcat服务器,剩余内存不足。

在开发当中,当一个项目比较大时,依赖的jar包通常比较多,我们都知道,在应用服务器启动时,会将应用引用到的所有类通过ClassLoader依次全部加载到内存当中。Java的逻辑内存模型大致分为堆内存栈内存静态内存区,也称持久区,该区的内存不会被GC回收堆内存用于存储类的实例、数组等引用类型数据,也就是用new生成的对象,都存放在这里,栈内存存储局部变量(如:方法参数)静态内存区存储常量、静态变量、类元数据信息(方法、属性等)。开发当中常遇到的三类内存溢出异常:

  • java.lang.OutOfMemoryError: Java heap space异常 
    表示堆内存空间满了,如果不是程序逻辑的bug,可能是因为项目中引用的jar比较多,导到内存溢出。JVM默认堆的最小使用内存为物理内存的1/64,最大使用内存为物理内存的1/4,如8G的物理内存,JVM默认堆的最小和最大内存分别为128m和2048m。通过调整JVM的-Xms(初始内存)和-Xmx(最大内存)两个参数加大内存使用限制。
  • java.lang.OutOfMemoryError: PermGen space异常 
    表示静态内存区满了,通常是由于加载的类过多导致。jdk8以下版本通过修改JVM的-XX:PermSize和-XX:MaxPermSize两个参数,限制静态区最小和最大内存范围。jdk8改变了内存模型,将类定义存放到了元数据(MetaspaceSize)空间,而元数据空间是与堆空间共享同一块内存区域的,所以在JDK8以后版本不会存在PermGen space异常了,故不用设置此参数。
  • java.lang.StackOverflowError异常 
    表示栈内存溢出。通常是由于死循环、无限递归导致。

系统会检测内存,如果内存占用过大,会自动清理进程。

 

二、服务器内存不足

主要配置Tomcat能处理的请求数,当一个进程的线程数超过500个的话,那么这个进程的运行效率就很低了。表面上看线程越多处理的请求越多,其实过多的线程会占用CPU在不同线程之间切换的资源,导致CPU在每个线程上处理的时间片极期有限,反而会降低服务器的响应性能。

 

三、解决方法

执行以下代码:

vim /var/log/messages

 

出现如图所示,就说明内存机制自动清除tomcat进程。内存不足产生溢出。 

 

查看被kill的进程:

grep Kill /var/log/message*

3.1Tomcat内存优化

 

修改Tomcat的内存配置,打开$TOMCAT_HOME/bin/catalina.sh文件(Windows系统是catalina.bat文件),大楖在250行左右,在JAVA_OPTS参数上添加内存参数设置即可。完整的JVM参数设置如下所示:

JAVA_OPTS="$JAVA_OPTS -server -Xms2048m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=256 -Djava.awt.headless=true"

-server参数表示以服务模式启动,启动速度会稍微慢一点,但性能会高很多。不加这个参数,默认是以客户端模式启动。 

-Xms–Xmx JVM内存设置,建议设置成同一个值,可以在命令行中使用 java -Xmx1500m -version 来测试当前服务器可以设置的最大内存。(-Xmx 的值太大时,JVM 无法启动)。

-Xmn 年轻代 整个堆大小=年轻代大小 + 年老代大小 + 持久代大小。持久代一般固定大小为64m。

-Xss 是指设定每个线程的堆栈大小。一般不超过 1M。

 

3.2代码优化内存泄漏

通常是ThreadLocal方法出现内存泄漏,优化自己的功能。

 

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

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

相关文章

《关于加强数字政府建设的指导意见》最重要内容是这条。

来源:中国智慧城市论坛日前,国务院发布《国务院关于加强数字政府建设的指导意见》,我们在其中找到了让我们千呼万唤、翘首以盼、望眼欲穿的这段文字:强化考核评估。在各级党委领导下,建立常态化考核机制,将…

毕业设计-人脸表情识别系统、人工智能

人脸表情识别系统 1. 前言 在这个人工智能成为超级大热门的时代,人脸表情识别已成为其中的一项研究热点,而卷积神经网络、深度信念网络和多层感知器等相关算法在人脸面部表情识别领域的运用最为广泛。面部的表情中包含了太多的信息,轻微的表…

谷歌布莱克·勒莫因:为什么我觉得AI已觉醒了?

来源:科技智谷编辑:Light人们在 AI 身上寄托了感情,被一系列拟人化的 AI 术语误导,LaMDA 本质就是个聊天机器人。谷歌工程师布莱克勒莫因(Blake Lemoine)上周发布了一份他分发给同事的文件,引起…

阿里云数据库Mysql被黑

阿里云数据库Mysql被黑 打开Mysql查看数据库时,发现所有的服务器上的数据库被黑 百度翻译了一下: 总结一下: 以下是常用的可以保护数据库的方式,供参考。可以有效防止被攻击。 1.密码强化,使用复杂密码设置&#xff0…

集体心智:社会网络拓扑塑造集体认知

来源:集智俱乐部作者:Ida Momenneja译者:许逸聪审校:陈斯信编辑:邓一雪导语人类是社会动物,人类的认知也是通过在社会网络中学习和记忆而形成。人类的社会网络与其他物种不同,有着复杂多样的成分…

OpenAI最新研究:AI模型看看视频,就学会了玩《我的世界》

《我的世界》里,玩家不一定都是人类,现在 AI 也会玩了。来源:机器之心《我的世界》是全球知名度最高的开放世界游戏。小朋友只需观看十分钟的教学视频,就能学会在游戏中寻找稀有的钻石,但这却是 AI 此前无法企及的高度…

机器的崛起:隐藏的控制论历史

来源:sayonly在二战后的几年里,计算机作为一种“思维机器”是如此的新奇和未知,而且,进步似乎是无限的。新的思维机器可以计算得出如何建造摩天大楼、如何经营证券交易所以及如何飞向月球。唯一的极限是想象力。“超级大脑”是等待…

Richard Sutton:经验是AI的终极数据,四个阶段通向真正AI的发展之路

来源:智源社区导读:强人工智能的发展是近年来关注的话题。让AI从人类的感知和行为,而非单纯的标注数据中学习,成为许多研究者关注的重点。其中,如何利用人类习得的日常生活经验,启发构建能够适应不同环境&a…

一张图带你了解JRE、JDK、JVM

目录 1.JRE 2.JDK 3.JVM 三者关系: 1.JRE JRE是Java Runtime Environment,Java 运行环境,包含Java运行的环境和核心类库。 2.JDK JDK是 Java Development Kit,Java 开发工具包,包含Java编译工具和运行工具。 3.JV…

机器的崛起:隐藏的控制论历史(二)

来源:sayonly大家好,我是只说,我在《图说元宇宙》之外开了一个新的番外,叫《元宇宙新使命》,本文是第34篇,“机器的崛起:隐藏的控制论历史(二)”。在上一篇文章中&#x…

毕业设计-基于Python爬虫的疫情数据可视化系统

基于Python爬虫的疫情数据可视化系统 采用EChartsFlaskRequests架构: 源码加3105088663

不要再「外包」AI 模型了!最新研究发现:有些破坏机器学习模型安全的「后门」无法被检测到...

来源:AI科技评论作者:王玥、刘冰一、黄楠编辑:陈彩娴一个不可检测的「后门」,随之涌现诸多潜伏问题,我们距离「真正的」机器安全还有多远?试想一下,一个植入恶意「后门」的模型,别有…

Git命令:常用Git命令集合

1.Git基本工作流程 2.命令 命令作用git init初始化,创建 git 仓库git status查看 git 状态 (文件是否进行了添加、提交操作)git add 文件名添加,将指定文件添加到暂存区git commit -m 提交信息提交,将暂存区文件提交到…

从微观到宏观:涌现的实质是信息转换?

来源: 集智俱乐部作者:梁金编辑:邓一雪导语之前的研究表明,还原并非总是好的科学策略,一些情况下,降维可以增加系统元素之间的依赖性,使得粗粒化的宏观尺度比底层微观尺度携带更多有效信息&…

Java栈内存、堆内存、方法区对对象和引用的关系

问题:Java栈内存、堆内存、方法区对对象和引用的关系 答案: 1.单个对象 如图所示: (1)首先类加载器加载要运行的类,首先将main方法加载进方法区,并进栈内存,顺序执行代码&#xff…

清华徐勇、段文晖研究组开发出高效精确的第一性原理电子结构深度学习方法与程序...

来源:ScienceAI第一性原理计算已被广泛应用于物理、材料、化学、生物相关的科学研究。然而,受限于计算效率和精度,如何实现大尺度材料体系的第一性原理研究是该领域的一个重大挑战。基于人工神经网络的深度学习方法为解决该挑战问题带来了曙光…

图灵奖获得者罗杰·瑞迪:AI不可能取代人类

来源:中国电子报作者:张维佳编辑:赵晨美编:马利亚监制:赵晨6月24日,图灵奖获得者、美国国家工程院院士、美国艺术与科学学院院士、中国工程院外籍院士罗杰瑞迪在第六届世界智能大会上表示,对待A…

LeCun用62页论文公布未来十年研究计划:AI自主智能

来源:量子位 | 公众号 QbitAI丰色 发自 凹非寺这段时间,关于“AI未来往哪走的”讨论,可以说是越来越激烈了。先是Meta被曝AI相关部门大重组,又有谷歌AI是否具备人格大讨论,几乎每一次讨论都能看到Yann LeCun的身影。现…

Java面试知识点:Date类、异常

问题:Java面试知识点:Date类、异常 答案: 1.Date类 代码如下: (1)创建日期: package com.xy;import java.util.Date;/*** ProjectName: day01* Package: com.xy* ClassName: test01* Author…

Cell解开谜题:原来是这种细胞教会新生的T细胞如何区分敌我!

来源:生物通研究人员发现了一种新的机制,可以教会正在训练中的免疫细胞在攻击病原体时保护自身组织。作为这种早期教育的一部分,专门的胸腺细胞会“摆”成不同的组织,教会免疫系统如何识别朋友和敌人。错误地对身体自身蛋白质做出…