2009-11-09 85 views
1

我們每天都會有多GB文件通過SSIS包加載到SQL Server 2005實例中。要將這些大型數據文件異步加載到SQL Server,我們構建了多線程.NET應用程序。此應用程序使用DTSExec命令行可執行文件來調用SSIS包。它還爲每個隊列實例化5個隊列和5個流。所以,總共可以同時加載25個文件。SQL Server 2005實例內存分配和SSIS DTSExec性能

此應用程序,說:「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看起來如此明顯,我們仍需要確切的事實來確定它是否會帶來顯着的性能提升。

+0

還有一件事; 上週AsyncLoader進入無限循環並崩潰了數據庫服務器。這給了另一個投票權,將服務和SSIS移到自己的機器上。如果應用程序崩潰了服務器機器,數據庫服務器仍將啓動並運行。 – mevdiven 2009-11-09 15:38:35

回答

1

我會去2盒,簡單明瞭。

我還希望你在64位有過128 GB RAM。

這就是說,SSIS安裝是從SQLSERVR.EXE例如單獨的可執行文件。因此,您可能會窒息CPU的內存而不是內存..您可以嘗試更改processor affinity以允許SQL Server僅使用16個內核,並讓內存找到它自己的級別。我還沒有玩過其他IO親和選項,所以沒有評論。

但是,你AsyncLoader啄可能值得它自己的盒子:一個3服務器解決方案...

其他景點:你已經安裝了殺毒軟件? SAN是瓶頸嗎?

+0

是gbn,盒子是64位操作系統。 SAN不是一個瓶頸。 – mevdiven 2009-11-12 18:52:39