Выделение памяти экземпляра SQL Server 2005 и производительность служб SSIS DTSExec - PullRequest
1 голос
/ 09 ноября 2009

У нас есть файлы размером несколько ГБ, которые приходят каждый день для загрузки в экземпляр SQL Server 2005 через пакеты служб SSIS. Чтобы асинхронно загружать эти большие файлы данных в SQL Server, мы создали многопоточное приложение .NET. Это приложение использует исполняемый файл командной строки DTSExec для вызова пакетов служб SSIS. Он также создает 5 очередей и 5 потоков для каждой очереди. Таким образом, всего 25 файлов могут быть загружены одновременно.

Это приложение, скажем «AsyncLoader», находится на том же компьютере, что и экземпляр SQL Server 2005 и экземпляр SSIS. Серверная машина огромна. 32 ЦП, 128 ГБ памяти, SAN и т. Д. Мы выделили 5% памяти для ОС, а остальная часть памяти зарезервирована для экземпляра SQL Server 2005. Вот мои варианты;

1) Переместите экземпляр SSIS и AsyncLoader на свой компьютер, чтобы у DTSExec было собственное большое пространство памяти для работы. Исключите циклы ЦП служб SSIS с компьютера с SQL Server.

2) Держите все проигрыватели (SQL Server, SSIS, AsyncLoader) на одном компьютере и сократите общий объем выделенной памяти на SQL Server до 75%, чтобы у DTSExec было больше памяти для работы.

В настоящее время у нас не так много времени для проверки концепции или сравнительного анализа для каждого решения. Я просто хотел, чтобы вы, ребята, поняли, есть ли у кого-то еще такая установка и каковы будут лучшие практики. Кроме того, перемещение пакетов с одной машины на другую является огромным бременем, поэтому, хотя вариант 1 кажется столь очевидным, нам нужны веские факты, чтобы понять, приносит ли он значительный прирост производительности.

1 Ответ

1 голос
/ 11 ноября 2009

Я бы пошел на 2 коробки, простой и простой.

Я также надеюсь, что вы используете 64-разрядную версию с 128 ГБ ОЗУ.

Тем не менее, установка служб SSIS - это отдельный исполняемый файл из экземпляра sqlservr.exe. Таким образом, возможно, вам не хватает SSIS ЦП, а не памяти. Вы можете попробовать изменить привязку процессора , чтобы позволить SQL Server использовать только 16 ядер и позволить памяти находить свой собственный уровень. Я не играл с другим вариантом ввода-вывода IO, поэтому у меня нет комментариев.

Тем не менее, вы AsyncLoader, что может заслужить свою собственную коробку: решение с 3 серверами ...

Другие вопросы: у вас установлен антивирус? Является ли SAN узким местом?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...