Как довести показатель использования файла подкачки до нуля?
Я пытаюсь настроить 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% влияют на производительность вашего сервера, прежде чем приложить немало усилий для его устранения. Я был бы удивлен, если бы это имело заметное значение - я думаю, что ваши усилия по настройке производительности, вероятно, лучше потратить в другом месте, но, как я уже сказал, я не администратор баз данных, поэтому я могу ошибаться.