Для любой хорошей системы есть 3 важные вещи: Процессор, Диск, Память. Из этих трёх, Диск является наиболее критичным для SQL Server. Смотря на случаи из реального мира, я не вижу людей, которые улучшают Процессоры или Память часто, однако Диски меняются достаточно часть (увеличение дискового пространства, пропускной способности). Сегодня мы рассмотрим ожидание, которое относится к Диску.
Из Book On-Line:
Имеет место при ожидании завершения операций ввода-вывода. Этот тип ожидания обычно не относится к операциям ввода-вывода страниц данных. Ожидания завершения ввода-вывода страниц данных отображаются как PAGEIOLATCH_*.
Объяснение:
Любые задания ожидают завершения I/O. Это хороший признак, что надо проанализировать нагрузку на Диск.
Уменьшение IO_COMPLETION ожиданий:
1. Надлежащим образом, на разных дисках, разместите файлы журналов (LDF) и файлы данных (MDF), Tempdb на другом отдельном диске, часто используемые таблицы в разных файловых группах и на разных дисках.
2. Проверьте статистику использования файлов баз данных, обратите внимание на IO Read Stall и IO Write Stall (fn_virtualfilestats)
3. Проверьте файл логов на наличие ошибок Диска
4. Если вы используете SAN (сетевое хранилище данных), то необходимо правильно настроить параметр HBA Queue Depth, почитать о котором можно в интернете
5. Проверьте наличие нужных индексов
6. Проверьте показания следующих счётчиков Perfomance Monitor
SQLServer: Memory Manager\Memory Grants Pending (Постоянное значение более чем 0-2 свидетельствует о проблеме)
SQLServer: Memory Manager\Memory Grants Outstanding
SQLServer: Buffer Manager\Buffer Hit Cache Ratio (Чем больше, тем лучше. Обычно значение долго превышать 90%)
SQLServer: Buffer Manager\Page Life Expectancy (плохо, когда ниже 300)
Memory: Available Mbytes
Memory: Page Faults/sec
Memory: Pages/sec
Average Disk sec/Read (Постоянное значение более чем 4-8 мс свидетельствует о проблеме)
Average Disk sec/Write (Постоянное значение более чем 4-8 мс свидетельствует о проблеме)
Average Disk Read/Write Queue Length
Заметка: Представленная тут информация является только моим опытом. Я настраиваю, чтобы вы читали Books On-Line. Все мои обсуждения ожиданий здесь носят общий характер и изменяются от системы к системе. Я рекомендую сначала тестировать всё на сервере разработки, прежде чем применять это на рабочем сервере.
Автор: Pinal Dave
*** *** *** *** *** *** *** *** *** *** *** ***
Полезные Скрипты
Рубрика Проверь себя
Ссылка на наш канал YouTube