Tomcat启动失败,窗口一闪而过_"call \"%executable%\" start %cmd_line_args%"-程序员宅基地

技术标签: jvm  java  tomcat  windows  

昨天遇到一个问题,配置了https/ssl的tomcat在windows操作系统上启动,窗口一闪而过,刚开始以为环境变量有问题,检查后并没有问题,但是在命令行执行java命令时提示

Error occurred during initialization of VM
Could not reserve enough space for object heap

网上搜了下是JVM内存溢出,这台服务器上已经部署了四个Tomcat,猜测可能是由于JVM内存不足导致,真正原因还在探索中。

找到一个可行的方法,我是通过第二个解决的。

使用Java程序从数据库中查询大量的数据时出现异常:java.lang.OutOfMemoryError: Java heap space
在JVM中如果98%的时间是用于GC且可用的 Heap size 不足2%的时候将抛出此异常信息。

JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。
例如:java -jar -Xmn16m -Xms64m -Xmx128m MyApp.jar
如果Heap Size设置偏小,除了这些异常信息外,还会发现程序的响应速度变慢了。GC占用了更多的时间,而应用分配到的执行时间较少。
Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。

Heap size的 -Xms -Xmn 设置不要超出物理内存的大小。否则会提示“Error occurred during initialization of VM Could not reserve enough space for object heap”。
这个问题的根源是jvm虚拟机的默认Heap大小是64M,可以通过设置其最大和最小值来实现.设置的方法主要是几个.

1.可以在windows 更改系统环境变量加上JAVA_OPTS=-Xms64m -Xmx512m

2,如果用的tomcat,在windows下,可以在C:\tomcat5.5.9\bin\catalina.bat 中加上:
set JAVA_OPTS=-Xms64m -Xmx256m
位置在: rem Guess CATALINA_HOME if not defined 这行的下面加合适.

3.如果是linux系统
Linux 在{tomcat_home}/bin/catalina.sh的前面,加 set JAVA_OPTS=’-Xms64 -Xmx512’

还有找到一篇有用的文章

windows系统为例,问题追踪:
打开tomcat/bin/startup.bat
1、在文件最后新增一行,输入 pause
2、找到 call “%EXECUTABLE%” start %CMD_LINE_ARGS% 改为
call “%EXECUTABLE%” run %CMD_LINE_ARGS%
保存,重新运行。

常见错误分析:
1、
错误信息:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
问题原因:JAVA_HOME和the JRE_HOME的环境变量没有定义或设置有误。
解决方式:
可以再系统的“环境变量”中设置一下JAVA_HOME即可.
或者:默认情况下,startup.bat调用catalina.bat,catalina.bat调用setclasspath.bat,
因此可以在其中一个文件头里设置一下JAVA_HOME:set JAVA_HOME=”D:\jdk\jdk1.6”

2、
错误信息:Error occurred during initialization of VM Could not reserve enough space for object heap
问题原因:内存设置过大,导致JVM没有起来
解决方式:
在catalina.bat中设置JAVA_OPTS为合理值,如
set JAVA_OPTS=-server -Xms512m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=256m

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yan50050/article/details/78790376

智能推荐

Python 集合set_set记忆-程序员宅基地

文章浏览阅读618次。Python中除了有list这种有顺序的高级数据类型,还包括set这种无序不可重复的数据类型。其实dict就是一种set,当dict没有key,只有value时,就是set的标准格式,即set={}. 虽然set不能像list那样进行index,slice等操作,但作为集合,set可以进行集合的交(intersection, &), 并(union, |), 差(differ_set记忆

最小二乘蒙特卡洛模拟方法-美式期权定价_小二乘蒙特卡罗估计(lsm-程序员宅基地

文章浏览阅读1.4w次,点赞10次,收藏75次。对于最小二乘蒙特卡洛模拟方法,相信很多人刚开始都搞不清楚到底是怎么回事,特别是对于非金融专业的同学来说,解决此类问题有点吃力,但解决美式期权定价问题,此方法被广泛使用,下面给出介绍:由于美式期权允许期权持有人在期 权到期日之前的任何时刻执行期权,我 们无法用经典的Black-Schols公式为 其定价,所以,对美式期权的定价通常只 能采用数值分析的方法。常用的期权定 价数值方法有三类,包括二项式..._小二乘蒙特卡罗估计(lsm

UE4-(雾效)体积雾-程序员宅基地

文章浏览阅读1.2w次,点赞5次,收藏50次。体积雾可以用来制作场景中有雾存在的情况下灯光效果。要比单纯使用指数高度雾效果好。一、开启体积雾在指数级高度雾中开启使用体积雾效果可以调整的参数:1.散射分布:决定体积散射的定向程度,值为0,光线将在所有方向上平均散射,值接近1,光线主要在光源方向上,必须沿着光源方向看才坑看到其散射的光线。2.反射率:体积雾使用的指数高度雾粒子反射度,空中水粒子(云、雾)的反射率接近于白色,而沙尘的值则更偏暗一点。注意:调整反射率将会更改整个画面的色调(与指数高度雾浓度有关),与只更改..._体积雾

PyQt4中无边框窗口的移动(拖动)_python qt无边框窗口重写鼠标事件拖动窗口-程序员宅基地

文章浏览阅读2k次。pyqt_python qt无边框窗口重写鼠标事件拖动窗口

Android音频子系统,音量的调节控制(七)_eycode_volume_up 监听-程序员宅基地

文章浏览阅读4.9k次。音量的调节控制:按下音量的加减键,对应的keyevent是:KEYCODE_VOLUME_DOWN,KEYCODE_VOLUME_UP。主要看两个地方对这一事件的处理,一是:handleKeyDown()@AudioManager.java,一是:interceptKeyBeforeQueueing ()@PhoneWindowManager.java。 先看AudioMana_eycode_volume_up 监听

年月日加上月数返回新的年月日js算法-程序员宅基地

文章浏览阅读1.2k次。 function dateadd(startdate,addmonth){ //startdate:开始时间yyyy-mm-dd. addmonth为 间隔的月 var year=startdate.split("-")[0];var month=startdate.split("-")[1];var day=startdate.split("-")[2];..._年月日加月数等于年月日

随便推点

78页2023年智慧公安发展构思与建设解决方案(ppt可编辑)_视频联网应用安全 ppt-程序员宅基地

文章浏览阅读739次。从统筹、指挥、管理角度出发,通过高速的图像处理、超高分辨率图像显示、多源数据的提取、筛选、分析,融合公安内外部的可视化信息联动等综合技术,使指挥中心及时获取预警信息,密切跟踪重点关注事项,实时监控现场事态,全面掌握警务资源,进而采取科学有效的指挥调度方案,提高指挥效率。数据资产目录帮助警务数据实现:数据地图绘制、统一数据口径、标明数据方位、分析数据关系、管理模型变更、改善数据质量,从而有效的发掘和利用警务大数据资产的价值,实现精准高效的分析、决策,降低案件办理风险。视频专网汇聚层由市局各分局组成。_视频联网应用安全 ppt

2021-03-25_expected dtype int64 for index-程序员宅基地

文章浏览阅读1.3k次,点赞4次,收藏6次。pytorch : IndexError: scatter_(): Expected dtype int64 for index.1.问题产生原因及解决方法scatte_r()要求数据是int64类型,检查传入scatter()函数的tensor 类型是不是int64,假如不是进行修改 data = torch.from_numpy(np.random.randint(1, V, size=(batch, 10))) data[:, 0] = 1 dat_expected dtype int64 for index

性能测试-初识_中间件redis也有可能存在瓶颈比如缓存穿透-程序员宅基地

文章浏览阅读293次。nmon可以监控linux服务器,cpu,磁盘,内存,网络等。压测之前,一般会先对各个数据流转系统做好监控,比如服务器硬件资源cpu,磁盘,网络,io以及数据库服务器,数据库连接数,是否有sql慢查询,包括线程状态,JVM,中间件redis,nginx等等做监控。这个定位分析方法其实就是结合监控一个一个去排查,查看究竟哪条链路有问题,这也是性能测试比较复杂或者难的地方,需要你对每一个组件和链路都懂,然后还需要大量经验积累,才能在最短的时间内找到问题所在。遇到问题需要结合监控来看。压缩,解压,序列化操作。.._中间件redis也有可能存在瓶颈比如缓存穿透

xshell session导入mobaxsterm_mobaxterm如何导入session-程序员宅基地

文章浏览阅读4.6k次。工作要求不可使用xshell,xftp等工具,当然我也不用,常用mobaxsterm,比较直观看到服务器性能以及拖拽文件方便,再次不做赘述。此时同时同事们面临多个xshell得session导入费时问题,参与研究,找到解决方法。参考于 https://www.cnblogs.com/hanxiaomeng/p/15066986.html一、准备python环境Python官网:https://www.python.org/ 安装最新python脚本并选择add path二、 找到xshell ses_mobaxterm如何导入session

MINIBASE源代码阅读笔记之HFPage-程序员宅基地

文章浏览阅读298次。HFPageheap file的page的类成员slot_t:用来表示页里的slot,包括offset和lengthslot[]:倒着生长的slot arrayslotCnt:有多少已用slot,注意是倒着数的freePtr:data[]中第一个free的byte的offsetfreeSpace:data[]里一共有多少free bytestype:里..._hfpage

python调用mysql api段错误_用mysql c api出现段错误问题,莫名其妙!高分求解-程序员宅基地

文章浏览阅读106次。我发现用mysqlcapi会有些莫名奇妙的错误,程序出现段错误后退出.应该不是程序的问题.各位有没遇到过?程序大概这样,简化了的.void*process_test(void*arg){MYSQLtspsql;charusername[25]]={0};charpasswd[255]={0};Pthread_detach(pthread_self());my_init();m..._pthread_detach(pthread_self()) segmentation fault

推荐文章

热门文章

相关标签