« 上一篇

机房管理系统需要向外扩展内存压力

按照设计,机房管理系统管理处理几乎完全在内存中进行。这样就能够实现更快的数据移动和转换,其设计目的是只对数据进行一次扫描,从而消除费时的暂存以及多次读写相同数据所带来的成本。而该种设计的潜在缺点是对于大量数据以及复杂的转换集,需要使用大量的内存以及正确的内存类型,以获取最佳性能。

在默认情况,32位Windows操作系统的虚拟内存空间被限制为2GB。虽然可以通过在boot.ini文件中使用3GB开关来提高该值,但这样往往仍然低于当前可用的内存总量。此限制将应用与每个进程,即执行过程中的每个包。因此通过跨多个包来划分一个进程,以确保每个更小的包有其自己的进程,从而独立地利用了完整2-3GB虚拟空间。将多个包连接在一起形成一个统一进程的常用方法是使用执行包任务,此时,必须将Child包设置为在进程之外执行。为此,必须将ExecuteOutOfProcess属性设置为True。

请注意,与SQL Server数据库引擎不同的是,SSIS不支持AWE,所以跨进程向外扩展到多个包是利用大量内存的唯一方法。如果您需要使用大量内存,那么应该考虑使用64位操作系统来托管这些机房管理系统进程。然而,在几年前,找到完全满足需求的软件和驱动程序是非常昂贵和困难的,而如今,64位系统是企业级硬件常用的软件,对已任何商业数据库而言,都应该考虑使用该系统。