Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Ограничение памяти для двух экземпляров MSSQL  [new]
MAULER
Member

Откуда:
Сообщений: 901
на Windows сервере 16 Гб ОЗУ. Установлено 2 экземпляра MSSQL 2008 R2.
Сервисы использующие SQL примерно одинаково будут нагружать инстансы. Я выделил на каждый экземпляр по 7Гб ОЗУ + 2 для системы. Вопрос - правильно ли я распределил память или есть какие то хитрости для условий когда используется несколько экземпляров SQL?
15 авг 13, 08:47    [14711085]     Ответить | Цитировать Сообщить модератору
 Re: Ограничение памяти для двух экземпляров MSSQL  [new]
stavgreengo
Member

Откуда:
Сообщений: 710
1)
Контроль использования памяти с помощью параметра max server memory. Установите максимальные значения для каждого экземпляра, учитывая, что их сумма не должна превышать общий объем физической памяти, установленной на компьютере. Рекомендуется выделять каждому экземпляру объем памяти, пропорциональный его ожидаемой рабочей нагрузке или размеру базы данных. Данный подход имеет то преимущество, что свободная память доступна новым процессам или экземплярам сразу же после их запуска. Недостаток состоит в том, что, когда выполняются не все экземпляры, ни один из выполняющихся экземпляров не сможет использовать память, оставшуюся свободной.

2)
Контроль использования памяти с помощью параметра min server memory. Установите минимальные значения для каждого экземпляра так, чтобы их сумма была на 1-2 ГБ меньше общего объема физической памяти, установленной на компьютере. Рекомендуется выделять каждому экземпляру минимальный объем памяти, пропорциональный его ожидаемой рабочей нагрузке. Данный подход имеет то преимущество, что выполняющиеся экземпляры могут использовать оставшуюся свободную память в случае, когда выполняются не все экземпляры. Данный подход также полезен, когда на компьютере выполняется другой процесс, интенсивно потребляющий память, так как при этом обеспечивается удовлетворение как минимум заданных потребностей сервера SQL Server в памяти. Недостаток состоит в том, что при запуске нового экземпляра (или любого другого процесса) уже выполняющимся экземплярам требуется некоторое время для освобождения памяти, особенно если для этого им необходимо записать измененные страницы обратно в базу данных. Возможно, придется также значительно увеличить размер файла подкачки.

3)
Отсутствие действий (не рекомендуется). Первый экземпляр, столкнувшийся с рабочей нагрузкой, попытается захватить всю память. Простаивающие или позднее запущенные экземпляры в конечном итоге могут получить лишь минимальный объем памяти. SQL Server не пытается балансировать использование памяти несколькими экземплярами. Тем не менее, все экземпляры будут реагировать на сигналы уведомлений памяти Windows, корректируя размеры своих буферных пулов. Операционная система Windows не выполняет балансировку памяти между приложениями с помощью уведомлений памяти API-интерфейса. Эти уведомления лишь обеспечивают глобальную обратную связь относительно доступности памяти в системе.


Эти настройки можно изменять без перезапуска экземпляров, поэтому можно легко экспериментировать с целью нахождения наиболее подходящих настроек для данной модели использования.
15 авг 13, 09:54    [14711301]     Ответить | Цитировать Сообщить модератору
 Re: Ограничение памяти для двух экземпляров MSSQL  [new]
MAULER
Member

Откуда:
Сообщений: 901
Т.е. никаких хитростей нет, всё по честному.
Спасибо.
15 авг 13, 10:10    [14711414]     Ответить | Цитировать Сообщить модератору
 Re: Ограничение памяти для двух экземпляров MSSQL  [new]
Glory
Member

Откуда:
Сообщений: 104760
MAULER
Т.е. никаких хитростей нет, всё по честному.

Экземпляры MSSQL независимы и никак не влияют друг на друга
15 авг 13, 10:21    [14711470]     Ответить | Цитировать Сообщить модератору
 Re: Ограничение памяти для двух экземпляров MSSQL  [new]
dfyuiokhf
Guest
MAULER
Т.е. никаких хитростей нет, всё по честному.
Спасибо.


В 2008 min/ max влияет на размер bpool. часть его идет на data cache, часть на single page потребителей, а все остальное, требующее multi page выделяется virtual allocatir'ом. мимо bpool'a, также некоторые компоненты не берут память из bpool'a - clr например...

в20 12 вроде все из bpool
15 авг 13, 10:37    [14711545]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить