物理内存不敌虚拟内存?还是我的CPU傻?高手请进!

来源:百度知道 编辑:UC知道 时间:2024/06/16 18:25:35
WindowsServer2003,Intel E7200,DDR2 800 2Gx4,PF在C盘,4G~8G,空间绝对够,小弟在做流体计算,在读入数据时会出现OUT OF MEMORY的错误,把计算量改小后,执行程序时,物理内存大概只能用到2G的样子,狂吃虚拟内存(3G多),算到后面会出现错误,无法为某节点开出多少多少的内存,此时物理内存仍只使用了2G,虚拟内存也应该还够,那位达人能为我解决此问题,感激不尽,高分奉上之外,铭感五内!
PS:本人怀疑和CPU有关,是不是一个CPU能控制的物理内存有限?以前单节点不能算的改成并行2个节点就能算了,上述问题是在2个节点下出现了,我不能再加节点了,我CPU只是双核的。
4楼说详细些,我虽然是32位的,但是我的WindowsServer2003企业版是支持8G内存的,要换了64位又没有与之相配的程序了,所以请大家不用考虑换64位这个方法了,谢谢!
------------------------------------------------------------
现在已经关了PF,我尝试着开了2个程序一起算,每个程序都是2节点并行,内存使用能到5G多,这说明我的系统肯定支持大内存(应该支持32G);1个程序2节点算时,系统内存3.2G,每个节点(单一进程)占用内存1.44G,运行正常,但是如果把程序计算量再稍改大,就会出现OUT OF MEMORY的错误。
会不会是单一进程最大内存支持的原因?还是程序本身的原因(因为程序是基于32位的程序,系统支持大内存它不同意..汗~~)?
谢谢诸位热心的帮助!

芯片组的问题
地址总线不够了

你说:WindowsServer2003企业版是支持8G内存
这只是说说
比如说DELL的 OPTILEX320系列 可支持4G 但是实际只支持2G
它的地址总线的上限就是2G

没用过这么豪华的机子.
------------------
在系统能管理8G内存的情况下,你还不如把页面文件关了.

爱慕能助啊.期待高手到来.

其实你按照你目前8G物理内存的容量完全可以把硬盘的虚拟内存禁用,将内存化出一个空间做为一个独立的虚拟硬盘,然后将虚拟内存划分到这个独立的虚拟硬盘中去,这样既充分的运用了资源,又能提高性能。其实你说的没错,CPU对物理内存的寻址空间有一定的限制,不过这个不用多去研究,一般情况下你的CPU可以完美的兼容20G以上的内存。这是从硬件的角度来看的,从系统的角度来看想要支持大内存就必须用最新的系统,一般情况下象什么WINXP只能识别3.5G以下的内存,2003貌似只能识别3G左右,想解决这个问题的话个人是无法完美的解决的,需要使用一些工具。这个你可以去搜一些相关的资料就行了。

和硬件没关系,问题在于,你这个软件的算法设计问题,访问内存的时候超出2G必定会指向页面文件。

现在的很多工程软件都这样,高速的物理内存不用,非得去找慢速的硬盘地址。。。

内存支持与芯片组密切相关
先判断芯片组的物理内存支持上限
建议:使用优化大师 www.wopti.net
(启动优化大师:系统信息检测-存储系统信息-内存-内存控制器-最大内存模块大小)

建议方案:
为提高系统性能,增强应用程序适应性,将物理内存化为交换文件磁盘
具体实施:
使用工具软件将超出2G的物理内存虚拟为一个磁盘,只将系统页面文件设置在该盘上