Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применяется к: SQL Server
В этой статье описывается, как устранить снижение производительности из-за неправильной операции ввода-вывода в SQL Server, если размер физического сектора отличается между дисками.
Обзор
SQL Server может столкнуться с неправильными операциями ввода-вывода, если размер физического сектора дисков отличается от серверов или систем хранения. Это условие может снизить производительность и особенно распространено в средах, где несоответствия размера сектора очевидны, например:
- Виртуальные машины с подключенным хранилищем
- Группы доступности AlwaysOn
- доставка журналов;
- Миграции оборудования
Например, распространенная проблема возникает, когда основной сервер использует размер сектора 4 КБ, а сервер-получатель использует 512 байт. Эта проблема приводит к неправильному выполнению операций ввода-вывода во время синхронизации журналов или восстановления. Это несоответствие может привести к снижению производительности, например медленным восстановлением или задержками синхронизации.
Флаг трассировки 1800 гарантирует, что SQL Server использует согласованный размер сектора 4 КБ для операций ввода-вывода журнала транзакций независимо от размера физического сектора базового диска. Этот флаг трассировки предназначен для поддержания производительности в смешанных средах, где серверы могли быть обновлены или перенесены на оборудование с различными спецификациями хранилища.
Для баз данных с интенсивными рабочими нагрузками, выравнивание операций ввода-вывода может значительно повысить производительность, в то время как преимущества могут быть незначительными в средах с интенсивным чтением.
Симптомы
Вы можете столкнуться с снижением производительности в SQL Server из-за неправильного ввода-вывода, если вы столкнулись со следующими симптомами:
Время медленной синхронизации или восстановления. Операции ввода-вывода неправильной обработки и вывода могут привести к медленной синхронизации или времени восстановления, особенно в распределенных средах SQL Server, таких как группы доступности AlwaysOn или доставка журналов.
Сообщения об ошибках в журнале ошибок SQL Server: сообщения об ошибках, связанные с операциями ввода-вывода, могут указывать на проблемы с неправильной настройкой, например:
There have been # misaligned log IOs which required falling back to synchronous IO.
Узкие места производительности во время операций с интенсивными операциями записи: операции с интенсивным записью, такие как резервные копии журналов или восстановление базы данных, могут столкнуться с высокой задержкой на диске и увеличением времени ожидания операций ввода-вывода из-за неправильного ввода-вывода, что приводит к узким местам производительности и медленному времени отклика.
Проверка размера сектора
Чтобы избежать неправильных операций ввода-вывода, важно убедиться, что размер физического сектора дисков согласован во всех серверах и системах хранения.
Чтобы проверить размер сектора, выполните следующую команду в командной строке с повышенными привилегиями:
fsutil fsinfo sectorinfo <volume path name>
На следующем снимка экрана показан вывод fsutil fsinfo sectorinfo
команды для E:
диска, которая имеет размер сектора 8 КБ, но размер физического сектора в 4 КБ, что приводит к неправильному выполнению операций ввода-вывода:
Решение
Если вы испытываете снижение производительности из-за неправильной обработки и вывода операций ввода-вывода и не можете изменить размер сектора, можно использовать флаг трассировки 1800 в качестве глобального параметра запуска, чтобы принудительно sql Server использовать согласованный размер сектора 4 КБ для операций ввода-вывода журнала транзакций.
Чтобы включить флаг трассировки 1800 в качестве параметра запуска, выполните следующие действия.
В системе, в которой установлен SQL Server, откройте диспетчер конфигурации SQL Server.
Разверните диспетчер конфигурации SQL Server (локальный) и выберите службы SQL Server.
Щелкните правой кнопкой мыши экземпляр SQL Server, который вы хотите настроить, и выберите пункт "Свойства".
В свойствах SQL Server перейдите на вкладку "Параметры запуска", введите
-T1800
поле параметра запуска и нажмите кнопку "Добавить", чтобы добавить параметр в список.Убедитесь, что флаг трассировки добавлен в список параметров запуска. Нажмите кнопку "ОК ", чтобы сохранить изменения:
Перезапустите службу SQL Server, чтобы включить флаг трассировки при запуске экземпляра.
Ссылки
KB3009974. ИСПРАВЛЕНИЕ. Медленная синхронизация при наличии разных размеров сектора