Просмотр использования кэш-памяти SQL?

Я надеюсь, что у этого есть действительно простое решение, но у меня есть чувство, что это не будет. Я нигде не смог найти никакой информации по этому вопросу, что не очень хорошее начало!

По сути, мы запускаем SQL Server 2008 на компьютере под управлением Windows Server 2008 R2 с 16 ГБ ОЗУ.

Проблема заключается в том, что объем используемой оперативной памяти продолжает увеличиваться до 15,6 ГБ, что вызывает у нас проблемы, и мне было интересно, может ли это быть кеш SQL.

Теперь мы настроили SQL для использования min/max 13 ГБ, но я все еще волнуюсь, что это может быть что-то еще, потребляющее ОЗУ, поэтому, прежде чем перезагрузить сервер и очистить все, что его использует, я подумал, что попробуйте и посмотрите, был ли это SQL.

Как узнать размер использования кеша SQL кеша? Это просто фигура в диспетчере задач?

Спасибо за любую помощь.

2 ответа

Решение

Perfmon.exe

Сначала посмотрите на тип объекта Process. У него есть экземпляр для каждого отдельного процесса в системе, и он содержит такие метрики, как виртуальные байты, пик виртуальных байтов, рабочий набор и пик рабочего набора. Экземпляр SQL Server будет назван в честь имени процесса "sqlservr". Глядя на все экземпляры, вы можете быстро увидеть, какой процесс вызывает наибольшее потребление памяти.

Далее рассмотрим собственные счетчики SQL Server. В объекте SQL Server: менеджер буфера вы найдете собственные счетчики SQL Server. Вам нужно взглянуть на счетчик Total Pages, который подсчитывает всю память, отслеживаемую SQL Server внутри. Счетчик указан в страницах, поэтому вам нужно умножить на 8192, чтобы получить байты.

Может быть большое несоответствие между счетчиком виртуальных байтов процесса и общим количеством страниц, принадлежащих SQL. Это может произойти, когда SQL использует AWE для отображения памяти, а SQL может также использовать AWE на платформах x64.

Вы также можете отслеживать потребление памяти SQL Server из isnide, посмотреть на sys.dm_os_memory_clerks или запустить DBCC MEMORYSTATUS.

Если вы обнаружите, что SQL Server использует память: закройте сеанс, откиньте руки от клавиатуры и уходите. Это нормальное, намеченное и желаемое поведение. Если вам нужна память для любого другого процесса, удалите этот процесс с того же хоста, что и SQL. Никогда не запускайте что-либо еще на том же хосте, на котором вы запускаете SQL Server (без IIS, без ASP, без обмена данными, без DC, без DNS/Winds, ничего).

Небольшой комментарий: если вы можете свободно "перезагрузить сервер и удалить все, что использует его", то вы также можете просто остановить службу SQL Server.

Если вы сделаете это, вы точно будете знать, действительно ли это SQL Server, который использует всю вашу память.

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