Я спорил с администратором базы данных и парой аппаратных парней о проблемах производительности на нашем сервере SQL. Обычно все в порядке, однако в последние несколько недель мы наблюдаем огромные задержки в работе сервера sql. Понятно, что SQL Server ожидает дискового ввода-вывода. Но мне постоянно говорят, что это так, потому что SQL Server запрашивает аномально высокий ввод-вывод. Что не так. Из того, что работает, я вижу, что нет ничего необычного, и все, что БД заботится, - это то, что вызывает блокировку и т. Д., Что бесполезно. Например, главное, что мы видим при резервном копировании, - это работа с базой данных ASPState, которую мы используем для управления состоянием сеанса ASP на веб-серверах. Эти операции обычно никогда не видны на активных результатах Sp_who2, потому что они происходят так быстро. База данных находится в простом режиме восстановления, и ведение журнала является минимальным. Однако во время этих скачков задержки мы можем видеть множество операций выбора и обновления базы данных, которые заблокированы или ожидают. Я уверен, что происходит то, что кто-то или какая-то работа выполняет что-то, что вызывает тяжелое использование диска в массивах raid, используемых для этого журнала баз данных и файлов данных. Проблема в том, чтобы доказать это, поскольку никто не хочет признать, что они делают что-то, что убивает наш сайт.
Мой вопрос заключается в том, какие счетчики производительности или что я могу зарегистрировать, что поможет показать, что SQL-сервер ожидает ввода-вывода, но не потому, что он запрашивает больше, чем обычно, вместо этого, поскольку диск занят, чтобы отвечать на запросы от сервера SQL так быстро, как обычно?
источник
Ответы:
Посмотрите на следующие счетчики perfmon:
Page lookups/sec
Page reads/sec
Readahead pages/sec
Full Scans/sec
Range Scans/sec
Skipped Ghosted Records/sec
Page IO latch waits
SQL Server, выполняющий большое количество запросов ввода-вывода, будет подтвержден большим числом сканирований, увеличением числа просмотров страниц и чтений страниц, а также большим числом ожидающих защелок ввода-вывода страниц. Стоит попробовать взглянуть на
sys.dm_exec_query_stats
записи с высокими показателями физического чтения. Они могли быстро определить виновника.В общем, подход к проблеме как к проблеме устранения проблем производительности, следуя методологии, такой как Ожидания и Очереди, является правильным подходом. Кажется, ваш администратор баз данных поступает правильно, поэтому вам следует его послушать.
источник
IO Data Bytes/sec
и посмотреть , если какой -либо другой процесс громя диск.Для того, чтобы начать использовать Гленн Берри Диагностические запросы и Адама Machanic в SP_Whoisactive , чтобы узнать, Что происходит на самом деле.
Сначала посмотрите, какие файлы базы данных имеют наибольшее узкое место ввода-вывода, выполнив этот запрос (Query by Glenn Berry)
Затем выполните этот запрос, чтобы увидеть первые десять событий, которые ожидает ваш сервер (запрос Джонатана Кехайяса ). Вы также найдете аналогичный запрос из диагностических запросов Гленна Берри.
Если у вас есть эта информация под рукой, вам будет намного легче устранить проблему.
Кстати, вы можете найти много сообщений о том, как использовать sp_whoisactive для устранения неполадок здесь.
источник
«Проблема доказывает это», правильно сказал. Взгляните на SQL Server: минимизируйте дисковый ввод-вывод
Речь идет о следовании DMV
Ссылки:
источник