Причины ввода-вывода в высоком буфере SQL Server 2008 R2

8

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

Глядя на хранилище данных управления (MDW), которое я недавно установил, я вижу огромный всплеск в буфере ввода-вывода. Общее время ожидания SQL составляет 1500-2000 мс, что значительно выше обычного (около 500 мс). Большая часть этого увеличения - буферный ввод / вывод.

Не будучи администратором базы данных и делая это из-за необходимости, я в значительной степени вне моей глубины.

Можно ли как-то сказать, почему произошло значительное увеличение числа буферных операций ввода-вывода? Возможно ли это из-за запроса, извлекающего большие объемы данных, или из-за неправильной настройки ограничений памяти SQL Server? Есть ли что-то конкретное (или общее в этом отношении), на которое я должен обратить внимание, или DMV, к которым я могу обратиться, чтобы помочь устранить неполадки?

Сервер SQL Server 2008 R2. Это виртуальная машина с двумя виртуальными ЦП и 8 ГБ ОЗУ, причем диски размещены в отдельном массиве в сети SAN.

введите описание изображения здесь

Все приведенные выше графики были созданы с использованием хранилища данных управления SQL Server .

Тим Александр
источник

Ответы:

9

Если вы внимательно посмотрите на график ожидания, цветные полосы фактически указывают на ожидания блокировки, а не ожидания ввода-вывода.

Кроме того, график ввода-вывода показывает увеличение использования системного диска, а не использования диска SQL Server .

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

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

Не переполнена ли память моего SQL Server?

Джон Сайгель
источник