互联网服务WebSphere中间件

【入门开窍班】32bit jvm最大可配置内存是2G还是4G?

如题,请问32bit jvm最大可配置内存是2G还是4G?
我知道32bit最大寻址空间是4G,那windows最大管理内存是2G的说法是否正确?
参与19

19同行回答

larrylularryluDBA中国电子口岸数据中心深圳分中心
32位操作系统的地址访问访问是2G以内,一般JVM设置在512M~1.5GB显示全部
32位操作系统的地址访问访问是2G以内,一般JVM设置在512M~1.5GB收起
政府机关 · 2009-12-30
浏览1041
chnbyvchnbyvlrwonders
32位windows,jvm+native显示全部
32位windows,jvm+native<=2G,native通常和jvm用的差不多,所以jvm最大值最好别超过1.3G
32位unix一般没这样的问题
64位的可以设到3G以上
不过设的太高回收的慢咯,而且出问题不好分析。收起
2009-12-22
浏览1002
月光无寒月光无寒系统工程师新疆电信
关于这个问题,我再补充下。首先:32bit的寻址空间就是4G,一般情况下,windowsxp能识别 4g,使用3.5G,linux可以识别4G,但是系统识别到这么多,并不是都可以使用这么多,例如:你有个windows2003的,8G内存(2003识别内存的多少,是和操作系统版本有关的,professional记得上限4G),如果安装oracle,ora...显示全部
关于这个问题,我再补充下。
首先:
32bit的寻址空间就是4G,一般情况下,windowsxp能识别 4g,使用3.5G,linux可以识别4G,但是系统识别到这么多,并不是都可以使用这么多,例如:
你有个windows2003的,8G内存(2003识别内存的多少,是和操作系统版本有关的,professional记得上限4G),如果安装oracle,oracle的sga 只能使用1.7G,java虚拟机也是一个道理,用户并不能使用你看到的全部内存。
举个例子:(这里也是我粘人家的图)
+++++++++++++++ 4g
+ -------------------------+
+------------------------- +
+------------------------- +
+++++++++++++++ 3g: kernel
+ ------------------------- +
+ ------------------------- +
+------------------------- +
+++++++++++++++ 2g: process stack
+ -------------------------+
+------------------------- +
+++++++++++++++ 1.25g: SGA起点
+++++++++++++++ 1g: oracle 共享库装载起点
+ -------------------------+
+ -------------------------+
+ -------------------------+
+++++++++++++++ 0g: oracle program(可执行代码)装载起点
也就是一部分内存空间预留给了核心
那么,如何使用这么大的内存呢?
我还是以windows为例,可以在c盘BOOT.INI文件加上
/PAE 参数,也就是内存扩展(需要cpu来支持),可以突破这个限制。
另外,jvm太大也并不是好事情 [ 本帖最后由 月光无寒 于 2009-7-4 00:01 编辑 ]收起
电信运营商 · 2009-07-03
浏览1092
ziyingziying系统工程师信息有限公司
32-bit operating systems have an address space limit of 4GBytes, regardless of theamount of physical memory in the system. This limits the maximum size of eachindividual process in the system. In addition, some operating systems restrict thesize of p...显示全部
32-bit operating systems have an address space limit of 4GBytes, regardless of the
amount of physical memory in the system. This limits the maximum size of each
individual process in the system. In addition, some operating systems restrict the
size of processes to be even less than this limit. Many versions of Windows limit
processes to 2GBytes in size; you can find more information at
http://support.microsoft.com/default.aspx?scid=kb;en-us;555223

The address space limit further restricts the size of the JVM process. If the process
grows larger than the limit imposed by the operating system, it may terminate
unexpectedly.

转自:IBM WebSphere Portal Version 6.0 Tuning Guide 1.0 [ 本帖最后由 ziying 于 2009-7-2 09:46 编辑 ]收起
政府机关 · 2009-07-02
浏览1053
daweedawee打杂柯西有线
原帖由 signme 于 2009-5-7 14:54 发表 为什么我的windows server 2003 R2 Enterprise x64 版本的 WAS JVM 最大堆栈只能是0-2048的范围? 64位的操作系统装了32位的WAS?显示全部
原帖由 signme 于 2009-5-7 14:54 发表


为什么我的windows server 2003 R2 Enterprise x64 版本的 WAS JVM 最大堆栈只能是0-2048的范围?



64位的操作系统装了32位的WAS?收起
2009-07-01
浏览1018
downsundownsun总监中联
以前测试过,就是相同的操作系统,不同JVM:sun,ibm,bea等JVM也不同,具体的值忘记了,但是有超过2G的。显示全部
以前测试过,就是相同的操作系统,不同JVM:sun,ibm,bea等JVM也不同,具体的值忘记了,但是有超过2G的。收起
2009-06-23
浏览969
jerry1996jerry1996系统运维工程师IBM
32位JVM最大可以配置多少内存,是由下面两个方面限制的.第一,操作系统级别.作为一个操作系统,32bit决定了只能寻址2的32次幂,也便是说4G的内存寻址范围.对于windows,这个4个G都有明确的规定,有2个G归操作系统使用.其他2G归应用使用.也就是说,正常情况下所有应用的内存(不...显示全部
32位JVM最大可以配置多少内存,是由下面两个方面限制的.
第一,操作系统级别.作为一个操作系统,32bit决定了只能寻址2的32次幂,也便是说4G的内存寻址范围.对于windows,这个4个G都有明确的规定,有2个G归操作系统使用.其他2G归应用使用.也就是说,正常情况下所有应用的内存(不包括操作系统进程使用的内存)不能超过2G.AIX也类似.只是各个操作系统都有变通的方法,通过这是环境变量,可以压缩操作系统使用的内存,这样,便可以使所有应用使用的内存超过2个G.
第二,JVM自身的设计.JVM是作为一个应用进程出现在操作系统的,所以它的内存使用受第一条操作系统的限制.比如正常情况下,在没有其他应用的情况下,最多只能达到2G.但是JVM使用的内存包括heap内存,native内存,还有其他内存,比如数据库连接,如果使用Type2方式,也会使用native内存。
这样,可以看到32位JVM最大可以配置多少内存。收起
互联网服务 · 2009-05-26
浏览1082
hasheihashei系统工程师万达信息股份有限公司
Windows平台下,对于32位的堆,最大大小为2G-1。但是限于Windows用户态单个进程最大内存为2G,而JVM占用的除了堆大小,还有本地堆栈、线程分配所需要的内存等等,所以一般设置成1.5G,防止出现OutOfMemory:native thread can not allocate的错误,这也是设置-Xss参数的原因之一。不过...显示全部
Windows平台下,对于32位的堆,最大大小为2G-1。但是限于Windows用户态单个进程最大内存为2G,而JVM占用的除了堆大小,还有本地堆栈、线程分配所需要的内存等等,所以一般设置成1.5G,防止出现OutOfMemory:native thread can not allocate的错误,这也是设置-Xss参数的原因之一。不过对于4G内存以上的Windows,开启/3GB /PAE参数,那么就可以把堆大小调整的更大一些(如果确有需要)。AIX下的32位JVM,IBM指出最大不要超过3.2G收起
系统集成 · 2009-05-25
浏览1042
西西梅丽西西梅丽系统工程师美丽西西
为什么我的windows server 2003 R2 Enterprise x64 版本的 WAS JVM 最大堆栈只能是0-2048的范围?显示全部
为什么我的windows server 2003 R2 Enterprise x64 版本的 WAS JVM 最大堆栈只能是0-2048的范围?

收起
汽车 · 2009-05-07
浏览1033
zhucezhuce应用系统开发维护银行
对了 我好多项目是512--768 速度也是刷刷地快啊显示全部
对了 我好多项目是512--768 速度也是刷刷地快啊收起
2009-04-10
浏览1086

提问者

wuwo2000
系统架构师wuwo

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2009-04-09
  • 关注会员:0 人
  • 问题浏览:5561
  • 最近回答:2009-12-30
  • X社区推广