Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / 2 А.Гладченко - использование Hyper Threading / 24 сообщений из 24, страница 1 из 1
27.03.2008, 10:03
    #35216588
DeColo®es
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 А.Гладченко - использование Hyper Threading
Можешь дать ссылку на статью, где научно обосновано, что HT - зло для MSSQL?
...
Рейтинг: 0 / 0
27.03.2008, 10:04
    #35216594
Crimean
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 А.Гладченко - использование Hyper Threading
DeColo®esМожешь дать ссылку на статью, где научно обосновано, что HT - зло для MSSQL?

не даст. ибо временами как раз HT - добро. имхо очень от камней зависит
...
Рейтинг: 0 / 0
27.03.2008, 10:13
    #35216626
DeColo®es
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 А.Гладченко - использование Hyper Threading
Crimean DeColo®esМожешь дать ссылку на статью, где научно обосновано, что HT - зло для MSSQL?не даст. ибо временами как раз HT - добро. имхо очень от камней зависитДаст, обещал.
Чуть ли не насильно.
Но в 6 вечера после "лонча" подходить к компьютеру желания уже ни у кого не было :)
...
Рейтинг: 0 / 0
27.03.2008, 10:23
    #35216670
Alex-00000
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 А.Гладченко - использование Hyper Threading
...
Рейтинг: 0 / 0
27.03.2008, 10:33
    #35216728
Александр Гладченко
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 А.Гладченко - использование Hyper Threading
DeColo®esМожешь дать ссылку на статью, где научно обосновано, что HT - зло для MSSQL?

Раз уж обещал, даю: http://technet.microsoft.com/ru-ru/magazine/cc137784.aspx

Технология гиперпоточностиНа технологии гиперпоточности стоит остановиться из-за того, как она влияет на SQL Server. Технология гиперпоточности фактически предоставляет операционной системе для одного физического процессора два логических процессора. По сути, технология гиперпоточности арендует время физических процессоров для полного использования возможностей каждого процессора. На веб-узле Intel ( http://www.intel.com/cd/corporate/techtrends/emea/rus/369646.htm ) представлено гораздо более подробное описание работы технологии гиперпоточности.
В системах SQL Server DBMS фактически обрабатывает собственные чрезвычайно эффективные очереди и потоки для операционной системы, поэтому в системах с уже существующей высокой загрузкой процессоров технология гиперпоточности только еще больше перегружает физические ЦП. Когда SQL Server осуществляет постановку в очередь нескольких запросов для работы с несколькими планировщиками, операционной системе приходится переключать контекст потоков команд для обеспечения соответствия выполняемым запросам, даже если два логических процессора принадлежат одному физическому процессору. Если показатель «Контекстных переключений/сек» превышает 5000 для одного физического процессора, следует серьезно рассмотреть вопрос об отключении гиперпоточности в системе и повторном тестировании производительности.
Только в очень редких случаях приложения с высокой загрузкой процессора в SQL Server могут эффективно использовать гиперпоточность. Перед реализацией изменений в рабочих системах необходимо всегда проверять приложения в SQL Server с включенной и выключенной гиперпоточностью.
...
Рейтинг: 0 / 0
27.03.2008, 10:44
    #35216783
DeColo®es
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 А.Гладченко - использование Hyper Threading
Огромный респект, с лонча успел забыть, учто речь шла о статье в течнете. :)
...
Рейтинг: 0 / 0
27.03.2008, 10:48
    #35216805
Crimean
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 А.Гладченко - использование Hyper Threading
да уж, обосновано просто железобетонно

обоснованиеПеред реализацией изменений в рабочих системах необходимо всегда проверять приложения в SQL Server с включенной и выключенной гиперпоточностью.

я так что угодно обосную! вообще это вредно, но всегда проверяйте - может это полезно. ад2!
...
Рейтинг: 0 / 0
27.03.2008, 10:51
    #35216819
DeColo®es
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 А.Гладченко - использование Hyper Threading
Хотя некоторые моменты....
Код: plaintext
Получение страницы данных, уже кэшированной из буферного пула, с максимальной производительностью выполняется в течение половины миллисекунды; получение одного блока с диска в оптимальной среде занимает от  2  до  4  миллисекунд.
Может быть, все-таки микромекунд?

Код: plaintext
Найдя страницу данных в буферном пуле, процессор получит данные и выполнит необходимые операции. Это называется ошибкой страницы ОЗУ.
Хм... Как-то нелогично, видимо, проблема перевода, где-то "не" пропустили...

Код: plaintext
Ошибки страниц ОЗУ идеальны для SQL Server, поскольку для использования данных, полученных в качестве части запроса, они должны находиться в буферном кэше. 
или скорее, с терминологией напутали. :(
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
31.08.2012, 15:25
    #37938955
Antoshka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 А.Гладченко - использование Hyper Threading
Изменилось ли что-нибудь в плане сабжа на современных процессорах?
...
Рейтинг: 0 / 0
03.09.2012, 00:14
    #37940678
DeColo®es
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 А.Гладченко - использование Hyper Threading
Antoshka,

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

ПРосто теперь гораздо чаще эффективнее все-таки включать. :)
...
Рейтинг: 0 / 0
03.09.2012, 14:40
    #37941356
Александр Гладченко
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 А.Гладченко - использование Hyper Threading
Моё личное отношение к HT изменилось (как и сама технология), раньше мне нужны были убедительные причины, что бы его включать, а теперь наоборот, должно произойти нечто из ряда вон выходящее, чт о бы я его отключил :)
...
Рейтинг: 0 / 0
03.09.2012, 15:05
    #37941419
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 А.Гладченко - использование Hyper Threading
Александр ГладченкоМоё личное отношение к HT изменилось (как и сама технология), раньше мне нужны были убедительные причины, что бы его включать, а теперь наоборот, должно произойти нечто из ряда вон выходящее, чт о бы я его отключил :)

вот оно как повернулось
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
06.09.2021, 16:47
    #40095544
Alexander Us
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 А.Гладченко - использование Hyper Threading
Имеется cервер с 2 процессорами Xeon Gold 6134, SQL 2008R2, Ent

Есть ли смысл выключить hyper therading если сontext switches >= ~15.000 ?
...
Рейтинг: 0 / 0
06.09.2021, 22:13
    #40095608
tunknown
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 А.Гладченко - использование Hyper Threading
Есть ли разница при выключении HT для случаев большого кеша L2, малого количества одновременных пользователей и преимущественно однопоточной нагрузки при MAXDOP=1 на сервер или на все запросы?

Про что-то подобное я спрашивал ранее в сообщении .
...
Рейтинг: 0 / 0
07.09.2021, 07:00
    #40095628
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 А.Гладченко - использование Hyper Threading
tunknown
Есть ли разница при выключении HT для случаев большого кеша L2, малого количества одновременных пользователей и преимущественно однопоточной нагрузки при MAXDOP=1 на сервер или на все запросы?

Про что-то подобное я спрашивал ранее в сообщении .


Глупые вопросы.
НТ - это аппаратная поддержка быстрого переключения между потоками/задачами.
Вреда от нее быть не может по-определению.
Когда-то, в былинные времена, когда HT только появился, MS SQL путал НТ с ядрами процессора и неоптимально использовал.
Это было так давно, что тебя наверное еще не было.
Но дурацкое предубеждение осталось.
...
Рейтинг: 0 / 0
07.09.2021, 08:01
    #40095630
vikkiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 А.Гладченко - использование Hyper Threading
зависит от доминирующего типа нагрузок,
например если узкое звено кэш (буфер памяти и его скорость) а расчётная часть лёгкая и при этом характер запроса предполагает только последовательное выполнение операций (последующие вычисления зависят/могут выполняться только после предыдущих) - то HT зло т.к. ведёт к падению эффективности из-за более долгого времени ожидания данных (расчётная мощность недогружена)

ещё насколько запараллелится запрос или операции зависимы и след. может выполнятся только после предыдущей (зависит от результатов предыдущего шага)
- при высокой параллельности это будет наверное более ближе к сценарию со множеством пользователей.

серии однопоточных последовательных тяжелых расчётных операций не требующих существенного объёма памяти от одного пользователя будет всё равно включено HT или нет (или даже дополнительные ядра или второй/третий/... CPU), незадействованный ресурс просто будет простаивать.

далее всё зависит от необходимого баланса характера нагрузки между сегментами:
- требуемая интенсивность расчётных операций
- объём необходимого кэша (и его скорость/пропускная способность)
ещё есть нюанс что у некоторых процессоров AVX-512 инструкции поддерживаются не всеми ядрами

если процессор недогружен то отключение HT так-же как и включение, (т.е. изменение состояния) не имеет смысла т.к. цикл всё равно будет холостой а его наличие не забирает существенных ресурсов
если процессор перегружен, т.е. очередь на выполнение операций большая (не зависит или от множества разных пользователей или малого количества но большая параллельность) то зависит от характера нагрузок,
- а) при этом кэш не является узким звеном (т.е. тяжелая расчётная часть и пропускной способности кэша достаточно) - то наличие HT больше добро
- б) кэш узкое звено - то наличие активного HT вполне может быть злом т.к. ведёт к падению эффективности полезного использования ресурса из-за излишней передачи данных (перетиранию нужных в кэше) и простою остальных сегментов в ожидании получения этих данных
...
Рейтинг: 0 / 0
07.09.2021, 10:10
    #40095650
Александр Гладченко
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 А.Гладченко - использование Hyper Threading
vikkiv,

Маленький кеш и без HT зло...

Для многопоточных нагрузок Интел обещает прирост производительности до 30% . Другие источники для иных задач наблюдали 20% .
Если нагрузка мизерная - разницы можете не заметить.
...
Рейтинг: 0 / 0
07.09.2021, 12:21
    #40095692
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 А.Гладченко - использование Hyper Threading
vikkiv

- б) кэш узкое звено - то наличие активного HT вполне может быть злом т.к. ведёт к падению эффективности полезного использования ресурса из-за излишней передачи данных (перетиранию нужных в кэше) и простою остальных сегментов в ожидании получения этих данных


Очередные ученые сказки. Не имеющие практического смысла.
Если ОСи надо переключить потоки - она переключит. И другой поток "перетрет".
С НТ переключит быстрее.

Так можно договориться до вредности многоядерности.
...
Рейтинг: 0 / 0
07.09.2021, 13:37
    #40095723
Alexander Us
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 А.Гладченко - использование Hyper Threading
aleks222,

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

Вот сейчас есть ситема, где на зеркале > 200.000 сontext switches / sec и 20% нагруженный проц.
Кроме зеркалирования другой нагрузки нет.

Попытаюсь выключить HT и посмотреть эффект.
...
Рейтинг: 0 / 0
07.09.2021, 15:38
    #40095766
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 А.Гладченко - использование Hyper Threading
HT рекомендовали отключать на машинах и процессорах 2005-2008 поколений. На последних выпусках не встречал таких рекомендаций.
...
Рейтинг: 0 / 0
08.09.2021, 11:00
    #40095896
Александр Гладченко
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 А.Гладченко - использование Hyper Threading
Alexander Us,

А почему сразу на HT подозрения?
Посмотрите лучше перекос памяти между NUMA нодами, может у вас вся переферия к одному сокету подключена...

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
DECLARE @MEM INT
select @MEM = SUM (pages_kb) / 1024 from sys.dm_os_memory_clerks
where type IN ('MEMORYCLERK_SQLBUFFERPOOL', 'MEMORYCLERK_SQLQERESERVATIONS', 'OBJECTSTORE_LOCK_MANAGER', 'MEMORYCLERK_SQLGENERAL', 'CACHESTORE_OBJCP', 'OBJECTSTORE_XACT_CACHE', 'MEMORYCLERK_XTP') AND memory_node_id <> 64
select memory_node_id, CAST (SUM (pages_kb) / (@MEM * 10.24) AS TINYINT) AS [%]
from sys.dm_os_memory_clerks
where type IN ('MEMORYCLERK_SQLBUFFERPOOL', 'MEMORYCLERK_SQLQERESERVATIONS', 'OBJECTSTORE_LOCK_MANAGER', 'MEMORYCLERK_SQLGENERAL', 'CACHESTORE_OBJCP', 'OBJECTSTORE_XACT_CACHE', 'MEMORYCLERK_XTP') AND memory_node_id <> 64
group by memory_node_id
select type AS [MEMORYCLERK], CAST (SUM (pages_kb) / (@MEM * 10.24) AS TINYINT) AS [%]
from sys.dm_os_memory_clerks
where type IN ('MEMORYCLERK_SQLBUFFERPOOL', 'MEMORYCLERK_SQLQERESERVATIONS', 'OBJECTSTORE_LOCK_MANAGER', 'MEMORYCLERK_SQLGENERAL', 'CACHESTORE_OBJCP', 'OBJECTSTORE_XACT_CACHE', 'MEMORYCLERK_XTP') AND memory_node_id <> 64
group by type
ORDER BY 2 DESC
...
Рейтинг: 0 / 0
08.09.2021, 12:10
    #40095920
Alexander Us
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 А.Гладченко - использование Hyper Threading
Александр Гладченко,

У меня 2008R2, pages_kb нет.
Изменил в Вашем коде на (single_pages_kb + multi_pages_kb).

Буду признателен за комментарий результата:
memory_node_id%015185

MEMORYCLERK%CACHESTORE_OBJCP63OBJECTSTORE_LOCK_MANAGER24MEMORYCLERK_SQLGENERAL10MEMORYCLERK_SQLBUFFERPOOL1MEMORYCLERK_SQLQERESERVATIONS0

Кроме того, на высокое значение сontext switches на SQL2008 может влиять таймер.
Тут пишут , что помогла установка флага t8038
...
Рейтинг: 0 / 0
08.09.2021, 13:37
    #40095985
tunknown
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 А.Гладченко - использование Hyper Threading
Alexander Us
Имеется cервер с 2 процессорами Xeon Gold 6134, SQL 2008R2, Ent
Если у вас избыточное соличество потоков, то может быть стоит разделить сокеты на cpu и i/o affinity . Так шедулеру не придётся перекидывать активность по шине на соседние 24.75 MB L2 кеша. Особенно, если сервер под sql и ничего больше на нём нет. Тем более, в 2008 R2 это ещё, кажется, настраивалось отдельно.

Хотя, эксперименты на боевом сервере...
...
Рейтинг: 0 / 0
08.09.2021, 14:52
    #40096007
Александр Гладченко
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 А.Гладченко - использование Hyper Threading
Alexander Us,
Комментарий простой, у вас очень сильный перекос использования памяти между процессорными узлами. Это точно не уменьшает число переключений :)
Смотрите схему подключения PCI слотов к сокетам и смотрите, как и какие устройства подключены к процессорам.
Если дисковый контроллер всего один, можно трейсфлагом попробовать вообще отключить поддержку NUMA.
Когда такой перекос, движок вынужден страницы в кеш тащить с другого сокета через QPI, который бывает ещё и с очередями (можно наблюдать в coreinfo). Это может в разы замедлить логические чтения и на порядки поднять число переключений контекста.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / 2 А.Гладченко - использование Hyper Threading / 24 сообщений из 24, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]