|
|
|
Размывание однопоточной нагрузки по ядрам
|
|||
|---|---|---|---|
|
#18+
Дано: сервер только под MSSQL без дополнительных сервисов и процессор, допустим, на 4ГГц с 8 ядрами. Есть однопоточный запрос или запрос с OPTION (MAXDOP 1). MSSQL выполняет его в один поток, но виндовс его будет выполнять на всех 8 ядрах. В Диспетчере задач будет видна общая загрузка процессора 12.5%=100%/8 и пилообразный график по всем ядрам. Если назначить в MSSQL affinity на одно ядро, то будет 100% загрузки одного и около 0 по остальным. Выглядит так, что поядерный кеш постоянно сбрасывается и процессор не выходит на turbo частоту, как при загрузке только одного ядра. Получаем потерю производительности, б о льшую при мегабайтном поядерном L2 кеше, меньшую при 256 КБ кеше. Например, в моём тестовом случае процессор нагружен на все ядра на частоте 3.32ГГц, хотя мог(?) бы на одно на 4.3ГГц. Есть ли возможность в виндовсе влиять на размывание загрузки ядер хотя бы косвенным образом? Во времена Win XP шедулер ядра, кажется, тоже перекидывал один поток с ядра на ядро, но делал это существенно реже. Ясно, что Микрософт заботится о размывании горячего ядра по кристаллу и прочем выравнивании нагрузки на процессоры с разным группированием ядер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2019, 17:17 |
|
||
|
Размывание однопоточной нагрузки по ядрам
|
|||
|---|---|---|---|
|
#18+
tunknown, запрос монолитен только у воображении, на самом деле сервер выполняет большое количество разнородных задач. При всем при том происходит переключение workers. Это штатная ситуация, не надо её бояться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2019, 17:24 |
|
||
|
Размывание однопоточной нагрузки по ядрам
|
|||
|---|---|---|---|
|
#18+
Ну, поставьте в настройках питания сервера производительный режим, чтобы не сбрасывал частоту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2019, 17:37 |
|
||
|
Размывание однопоточной нагрузки по ядрам
|
|||
|---|---|---|---|
|
#18+
Гавриленко Сергей АлексеевичНу, поставьте в настройках питания сервера производительный режим, чтобы не сбрасывал частоту.Уже стоит, мин=100% и макс=100%. Даже если бы это помогло, то это не повлияло бы на размытие нагрузки ядер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2019, 17:45 |
|
||
|
Размывание однопоточной нагрузки по ядрам
|
|||
|---|---|---|---|
|
#18+
(4.3ГГц - 3.32ГГц) / 3.32ГГц = 30% прироста (3.32ГГц * 8 - 3.32ГГц) / 3.32ГГц = 700% прироста Не туда копаете, короче. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2019, 17:55 |
|
||
|
Размывание однопоточной нагрузки по ядрам
|
|||
|---|---|---|---|
|
#18+
Ничего Вы тут не поделаете. ОС Windows сама регулирует нагрузку как ей хочется. Я уже экспериментировал с affinity, но это всего лишь "сходство, родственность", т.е. пожелание, а не жесткое указание. Поэтому работает только в очень редких случаях и непродолжительное время, а далее Windows просто игнорирует Ваши пожелания. Се ля ви... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2019, 17:56 |
|
||
|
Размывание однопоточной нагрузки по ядрам
|
|||
|---|---|---|---|
|
#18+
Поскольку кеши L1/L2 заданы на двухпоточное ядро, то при определённой нагрузке с обращением команд к памяти кеши "уменьшаются" в два раза. Немного сгладить влияние упомянутой пилы можно отключив HyperThreading на Intel. На AMD ядра устроены по другому и отключить двухпоточность, как я понял, нельзя. AMD Ryzen 7 3700X Код: plaintext 1. 2. 3. 4. Код: plaintext 1. 2. 3. 4. Поэтому, если число одновременно выполняемых запросов (не просто залогиненных пользователей) соответствует числу ядер, то многопоточность нужно отключать. В редких случаях при наличии массовых параллельных планов этот совет не годится. Хитрости, подобные NtSetTimerResolution , пока оставим в стороне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2019, 09:40 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39883807&tid=1687027]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 360ms |

| 0 / 0 |
