Назад | Перейти на главную страницу

Размер файла подкачки на сервере с тоннами ОЗУ

У нас есть сервер базы данных, который мы обновляем до 64 ГБ ОЗУ, но в настоящее время у него есть только небольшие диски SCSI - всего чуть более 400 ГБ (192 ГБ после зеркалирования). Наша база данных относительно небольшая, но все говорят нам, что размер файла подкачки должен быть 1–1,5X RAM. Нам нужно установить какой-то максимальный размер с учетом нашего небольшого размера диска, но кажется глупым покупать диски SCSI за 500 долларов только для хранения файлов подкачки.

В 1,5 раза больше физической памяти - это всего лишь ориентир. Есть несколько общих указаний о размере файла подкачки в эта статья Technet что подчеркивает суть:

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

Однако для некоторых систем (контроллеры домена, серверы Exchange) полное отключение файлов подкачки не является хорошей идеей. Это специально противопоказан для DC и это очень плохая идея для Серверы Exchange. Я видел поведение Exchange, описанное в этой статье (чрезмерная перегрузка диска, вызванная подкачкой) на сервере E2K7, который не был полностью занят 32 ГБ физической ОЗУ, где кто-то установил размер файла подкачки на 1 ГБ.

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

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

Вся цель правильной спецификации сервера dbase - предоставить достаточно оперативной памяти для всей базы данных / ей. Последнее, что вам нужно, - это запросы SQL, вызывающие дисковый ввод-вывод (подкачку). Найдите папки базы данных MSSQL и проверьте общее использование диска вашей базой данных. У вас должно быть как минимум вдвое больше оперативной памяти в системе - в идеальном мире. Это оставляет достаточно ОЗУ для роста базы данных, а также достаточно для кеширования запросов и т.п.

Итак, чтобы ответить на ваш вопрос, своп может в 1,5 раза превышать объем памяти для систем с низким объемом памяти и обычно составлять 8 ГБ или меньше для систем с большим объемом памяти. Если вы начнете использовать подкачку, не увеличивайте своп .. увеличивайте объем оперативной памяти.

Я бы рекомендовал начать с чего-нибудь приличного размера, но небольшого по сравнению с вашей физической памятью. В коробке 32 ГБ файл подкачки 8 ГБ - хорошее начало. После некоторого тестирования вы можете переместить это число, если хотите. Обязательно предоставьте SQLserver право «блокировать страницы в памяти», чтобы сам сервер базы данных не мог быть выгружен.

Для получения отличной статьи о размере памяти см .:

http://support.microsoft.com/kb/889654