【问题标题】:SQL Server 2005 Instance memory allocation and SSIS DTSExec performanceSQL Server 2005 实例内存分配和 SSIS DTSExec 性能
【发布时间】:2009-11-09 14:16:18
【问题描述】:

我们每天都有数 GB 的文件通过 SSIS 包加载到 SQL Server 2005 实例。为了将这些大数据文件异步加载到 SQL Server,我们构建了多线程 .NET 应用程序。此应用程序使用 DTSExec 命令行可执行文件来调用 SSIS 包。它还为每个队列实例化 5 个队列和 5 个流。因此,总共可以同时加载 25 个文件。

这个应用程序,比如“AsyncLoader”,与 SQL Server 2005 实例和 SSIS 实例位于同一台机器上。服务器机器很大。 32 个 CPU、128 GB 内存、SAN 等。我们将 5% 的内存分配给操作系统,其余内存保留给 SQL Server 2005 实例。这是我的选择;

1) 将 SSIS 实例和 AsyncLoader 移动到自己的机器上,以便 DTSExec 拥有自己的大内存空间来工作。消除 SQL Server 机器上的 SSIS CPU 周期。

2) 将所有播放器(SQL Server、SSIS、AsyncLoader)保持在同一台机器上,并将 SQL Server 上分配的总内存减少到 75%,以便 DTSExec 有更多内存可以运行。

目前,我们没有太多时间来为每个解决方案进行概念验证工作或基准测试。我只是想让你们的想法,看看其他人是否有这种设置以及最佳实践是什么。此外,将包从一台机器转移到另一台机器是一个巨大的负担,所以即使选项 1 看起来如此明显,我们需要确凿的事实来看看它是否会带来可观的性能提升。

【问题讨论】:

  • 还有一件事;上周 AsyncLoader 进入了一个无限循环并导致数据库服务器崩溃。这又为将服务和 SSIS 移到自己的机器上投了赞成票。如果应用程序使服务器计算机崩溃,数据库服务器仍将启动并运行。

标签: .net database sql-server-2005 ssis


【解决方案1】:

我会选择 2 个盒子,简单明了。

我也希望你也使用 64 位和 128 GB RAM。

也就是说,SSIS 安装是一个独立于 sqlservr.exe 实例的可执行文件。所以你可能会饿死 CPU 而不是内存的 SSIS。你可以尝试更改 processor affinity 以允许 SQL Server 仅使用 16 个内核并让内存找到它自己的水平。我没有玩过其他 IO 关联选项,所以没有 cmets。

但是,你是 AsyncLoader 的东西可能值得一盒它自己:一个 3 服务器解决方案...

其他要点:您是否安装了防病毒软件? SAN 是瓶颈吗?

【讨论】:

  • 是 gbn,盒子是 64 位操作系统。 SAN 不是瓶颈。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-08
  • 1970-01-01
相关资源
最近更新 更多