java - JVM内存设置后TOMCAT无法启动

 mobiledu2502857407 发布于 2022-11-02 17:46

linux服务器内存大小8G,通过top命令查看可知,当前系统其它进程占用了1G内存。当我设置Xmx为3600M时可正常启动,但是3700M时就无法启动了,依次试过4000M,都不行,报错代码如下,下面三种错误都有报过:

Error occurred during initialization of VM·
Could not reserve enough space for object heap
Could not create the Java virtual machine. 

不知道这个问题如何理解,求高手解答。理论上来说,就算JDK是32位的,应该也能支持4G内存大小

2 个回答
  • 我想问下,从哪里设置这个jvm的大小?

    2022-11-12 01:50 回答
  • Oracle 官方文档:
    The maximum theoretical heap limit for the 32-bit JVM is 4G. Due to various additional constraints such as available swap, kernel address space usage, memory fragmentation, and VM overhead, in practice the limit can be much lower. On most modern 32-bit Windows systems the maximum heap size will range from 1.4G to 1.6G. On 32-bit Solaris kernels the address space is limited to 2G. On 64-bit operating systems running the 32-bit VM, the max heap size can be higher, approaching 4G on many Solaris systems.


    帮你翻译一下吧:
    理论上,32位的Java虚拟机的Heap(堆)的上限是4G,然而由于其他各种限制,比如可用的交换区,内核地址空间使用,内存碎片和VM overhead(JVM的开销?栈?)等,实际上这个上限可能远小于理论值。在大多数32位的Windows系统上,实际值从1.4G到1.6G不等。在32位的Solaris内核中,地址空间限定到2G。在64位操作系统上运行32位Java虚拟机,该值可能要高一些,比如在很多Solaris系统上就接近4G。

    2022-11-12 01:50 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有