Должен ли я отключить HyperThreading

8

УРОВЕНЬ ТЕХНИКИ Недавно я изучал довольно высокие времена ожидания CXPacket, из-за которых я использовал SQL Sentry для тщательного мониторинга активности процессора.

В результате я обратил внимание на то, что у нас наблюдается резкий скачок в переключении контекста. Ниже приведен 5-минутный образец, но этот шаблон очень распространен в течение дня.

контекст

Как вы можете видеть, это довольно часто всплески. Теперь мое понимание этого заставит меня поверить, что это будет результатом нагрузки на процессор. Однако за это время с трудом справляюсь с 60%.

процессор

После некоторых исследований это привело меня к мысли, что это происходит в результате гиперпоточности. Я знаю, что прочитал ранее некоторые опасности гиперпоточности. Однако это было написано очень давно.

Короче говоря. Является ли гиперпоточность вероятным виновником такого всплеска переключения контекста? Возможно ли, что переключение контекста отрицательно влияет на мои параллельные запросы? Должен ли я отключить гиперпоточность в моей среде?

ОБНОВЛЕНИЕ, хотя эта конкретная вещь происходит в моей среде, вопрос по своей сути является более универсальным. Насколько влияют высокие уровни переключения контекста на параллельные запросы? Может ли гиперпоточность стать причиной такого рода проблем?

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

Моя система Было много вопросов о конфигурации, поэтому я рассмотрю их здесь, чтобы их можно было исключить. У нас есть настройки энергопотребления на обеих ОС на биоуровне. Наш Maxdop установлен на 8, а порог стоимости параллелизма - 25. У нас 32 логических ядра и 16 физических. Также это по большей части сценарий загрузки хранилища данных.

Зейн
источник
11
Если ваше оборудование не очень старое, сначала я бы рассмотрел снижение MAXDOP и / или повышение порога стоимости для параллелизма. Возможно, у вас слишком много коротких / меньших запросов, которые идут параллельно. (И я думаю, что отключение HT может не дать того положительного эффекта, которого вы ожидаете.)
Аарон Бертран
1
Какой ваш план питания настроен на сбалансированный, а не на высокую производительность?
Кин Шах
Чтобы добавить комментарий @aaronbertand. Текущий Maxdop - 8 для 32 логических ядер. Мне придется перепроверить порог стоимости, так как я не могу вспомнить номер с руки.
Зейн
@kin высокая производительность установлена ​​в настоящее время.
Зейн
1
@ Зейн в windows или в биосе?
Том V - попробуйте topanswers.xyz

Ответы:

1

Часто указывает только на то, что определенные запросы выполняются с параллелизмом; Ожидание CXPACKET на сервере не является непосредственным признаком проблем, хотя они могут быть признаком другой проблемы.

Если на сервере размещено хранилище данных или база данных отчетов, которая получает небольшой объем запросов, но обрабатывает большие объемы данных, параллелизм может существенно сократить время, необходимое для выполнения этих запросов. Однако, напротив, если на сервере размещена база данных OLTP, которая содержит множество небольших запросов и транзакций, параллелизм может снизить пропускную способность и негативно повлиять на производительность.

Когда это возможно, лучше всего изолировать и устранить неполадки базового типа ожидания, поскольку это приведет к общему повышению пропускной способности системы. Опять же, ожидания CXPACKET в большинстве случаев являются просто симптомом проблемы, а не реальной проблемой.

DMV sys.dm_os_latch_stats содержит информацию о конкретных ожиданиях защелки, которые произошли в экземпляре, и, если один из ожиданий верхней защелки является ACCESS_METHODS_DATASET_PARENT, в сочетании с CXPACKET, LATCH_ * и SOS_SCHEDULER_YIELD, типы ожидания в качестве верхнего уровня параллелизм в системе является причиной узких мест во время выполнения запроса, и для решения проблем может потребоваться уменьшение параметра «максимальная степень параллелизма» sp_configure.

Эта статья в TechNet Magazine устарела, но в ней говорится, что стоит попробовать отключить гиперпоточность, если вы превышаете 5000 в секунду на процессор:

Оптимизация производительности процессора SQL Server. Автор Zach Nichter.

Джеймс Роат
источник
Я не предполагаю, что ожидания cxpacket являются признаком проблемы. Что я хочу знать, так это то, что гиперпоточность может вызывать эти всплески в переключениях контекста, и могут ли эти переключатели отрицательно влиять на параллельные запросы
Zane