在SAP Business One中如何才能提高系统内存分配

发表于:2018/4/3 11:07:58  阅读量: [关闭]



  以下内容主要针对SAP Business One 软件在使用过程中可能遇到的内存不足的问题,所对其进行优化和改善作用。

  按照企业业务发展需求的不同作为其使用的ERP系统SAP Business One (简称B1)数据库的数据量也随之增大,在这种情况下会导致操作系统在运行某些任务的时候,例如在生成复杂报表、系统同时运行多个add-on插件等情况下,操作系统会报错,这也说明了其内存不足,或者操作系统直接失去响应,而非正常关闭。

  关于这个问题需要从操作系统上进行查找原因,实际理论上而言,不管电脑系统安装了多少物理内存,对一个32位的应用程序来说在内存空间中能使用的内存最多只有4GB。而在32位的windows系统中,正常情况下系统限制是2GB容量,另外2GB是**作系统内部保留使用。而我们知道,目前发行的B1还是典型的32位Windows程序,受限于Windows系统的这个限制,B1能使用的内存可能也就只有2GB。

  从这个理论得出对B1而言2GB的内存容量的确不够使用,对B1来说一个大容量的数据操作时候或启动了多个add-on的时候,内存的容量肯定不够使用。

  关于这个问题,SAP早以意识到此问题的严重度,并做了一些策略来应对此问题。

  Windows可执行程序有一个标志位: IMAGE_FILE_LARGE_ADDRESS_AWARE 。当设置了这个标志位的时候,Windows就会试图为该应用程序分配更多的内存空间。具体情况是这样的:(参见 O网页链接)

  如果当前Windows是32位的,普通模式启动,那么很遗憾,情况没有改善。该32位应用程序得到的内存空间还是2GB,另外2GB为操作系统保留。

  如果当前Windows是32位的,且是以/3GB 启动参数方式启动的,那么,该应用程序将得到3GB的内存空间。而操作系统自身只保留1GB的空间地址。

  如果当前Windows是64位的,那么32位应用程序将直接得到4GB的内存空间。

  而我们的B1应用程序现在已经是设置了 IMAGE_FILE_LARGE_ADDRESS_AWARE 的标志位的。所以,我们可以利用这一特性,配合操作系统,将B1的寻址空间由2GB扩展为3GB甚至4GB。由此,原来很多因内存不够而失败的操作,将会有明显改善,可能就会通过了。

  通过上面分析和描述,最佳的方案是推荐大家使用64位的操作系统。随着windows 7流行,64位的操作系统也越来越贴近日常的工作生活,甚至也包括了即将发布的windows 8 的64位版本。在这样的情况下,作为客户不需要做任何的设置,B1系统直接就可以享受4G的内存空间!

  而如果***作系统还停留在32位,比如32位的Windows XP或者Windows Server 2003,那么根据上面的分析,还是有改进余地的,就是给操作系统加上启动参数 /3GB。这样可以让B1的可用内存从2GB扩大到3GB。

 



本文链接:在SAP Business One中如何才能提高系统内存分配