Как довести показатель использования файла подкачки до нуля?

Я пытаюсь настроить SQL Server. В видео по настройке производительности Брента Озара он говорит, что файл подкачки PerfMon:%Usage должен быть нулевым или смехотворно близким к нему. Средний показатель на моем боксе составляет около 1.341%

В блоке имеется 18 ГБ ОЗУ, SQL Server выключен, общий объем фиксации составляет 1 ГБ, а показатель PerfMon не равен 0. Производительность диспетчера задач указывает, что использование PF составляет 1,23 ГБ.

Что я должен сделать, чтобы лучше настроить коробку?

2 ответа

Вы должны действительно настроиться на производительность, а не на магические числа.

Использование нулевого файла подкачки (подкачки) - хорошая цель, если вы можете ее достичь, но если у вас достаточно ОЗУ для всех нужд SQL-сервера и у вас нет проблем с производительностью, вам, вероятно, не нужно ничего "настраивать". Наличие некоторых данных в файле подкачки, которые никогда не будут запрашиваться, не снижает производительность.

Если вы хотите сосредоточиться на цифрах, хотя я бы сосредоточился на Memory\Available Bytes (убедитесь, что всегда доступно здоровое количество, где "здоровый" определяется вашим вариантом использования) и Memory\Pages/sec (который должен быть нулевым или близким к нему, указывая, что то, что находится в разделе подкачки, активно не вызывается в RAM).


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

В качестве примера рассмотрим следующую статистику с одного из моих (unix) серверов БД:

CPU:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
Mem: 710M Active, 730M Inact, 554M Wired, 72M Cache, 315M Buf, 862M Free
Swap: 2048M Total, 910M Used, 1138M Free, 44% Inuse
  • У меня "много" свободной оперативной памяти (800 МБ, и больше ничего не понадобится).
  • Я использую огромный кусок моего пространства подкачки
    (потому что на этом сервере есть программа с утечкой памяти, которая в основном выгружается)
  • Производительность системы отличная, и все мои пользователи довольны.

Поэтому в настоящее время я не предпринимаю никаких действий по настройке (хотя я убиваю и перезапускаю программу с утечкой памяти, когда использование свопа достигает 50%).

Диспетчер задач неверен. Это на самом деле отображает общее количество коммитов системы. (Формулировка была изменена в 2008 году на сервере, чтобы отразить это.)

Что касается использования файла подкачки 1.341%, мне это кажется довольно смехотворно близким к нулю, но я не администратор. Это нормально для Windows сделать пейджинг, даже если у него достаточно памяти - если это то, что вы хотите исправить, возможно, вам следует подумать о том, чтобы запросить указатели на DBA-ориентированном сайте / форуме. Похоже, что существует некоторое обсуждение этой проблемы на dba.stackexchange.com и sqlservercentral.com

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

Другие вопросы по тегам