Форум OlegON > Компьютеры и Программное обеспечение > Операционные системы и программное обеспечение > Oracle

Не следует включать Hyper-Threading для серверов баз Oracle : Oracle

28.03.2024 21:19


04.02.2015 10:21
OlegON
 
Ради всего святого, заколебался объяснять и бегать по граблям.
То, что вы соврете базе о количестве ядер, ни к чему хорошему не приведет.
СУБД достаточно внимательно рассматривает параметры системы и достаточно часто исходит из имеющихся данных для применения автоматической настройки.

Если железячник - даун и не выключает HT по вашему требованию, то поправьте cpu_count, не очень хорошее решение, во-первых, потому, что рано или поздно система все равно скинет на псевдоядро какую-то работу (т.е. проблем с производительностью будет меньше, но они все равно будут), ну и светлое будущее иногда настает и при апгреде вы забудете, что придавили количество процессоров.

Данное замечание 100% актуально и проверено практикой для серверов до 11.2.0.4 и текущих Xeon включительно. Под нагрузкой длительных операций с интенсивным вводом-выводом, производительность сервера с включенным Hiper-Threading падает значительно и приводит к невнятным глюкам.
04.02.2015 10:30
Micle
 
таки да. замечал подобное не только с ораклом. И таки да, проблема это не в HT а в конкретном софте. В данном случае в Oracle.
04.02.2015 10:38
OlegON
 
Дело не в софте, как я понял, если долгий ввод-вывод, то HT тупит и косячит. Если в ворде кнопочки отрисовать, то будет какой-то выигрыш.
04.02.2015 11:24
Micle
 
НТ задействует неиспользуемые основным потоком блоки ядра. Т.е. если основной поток "уперся" в cache-miss или вообще ожидает какое либо длительное действо (в размерности процессора длительное) то второй поток вполне себе может лопатить вычисление не связанное с работой основного. Иными словами, для правильного разделения нагрузки на HT-ядры нужно использовать "разумный" подход к распределению _типа_ нагрузки на них.

Добиваются этого, я полагаю, тонкой оптимизацией кода, применением "правильных" компиляторов и т.д.
28.02.2020 09:37
OlegON
 
Еще один гвоздь в использование Hyper-Threading для СУБД (у меня на десктопе он, например, включен) забил в январе этого года.
Новый Xeon Gold, мощный и красивый, падал враз на колени при превышении количества активных юзеров более чем на половину "ядер". Сейчас не помню точно, вроде 32 липовых ядра с HT получалось, соответственно, после 16 активных сессий сервак просто вставал колом. Так и не разобрались, сервер был под продуктив и общим мнением сошлись, что это, скорее всего, глюк материнки, но, как факт. Сношались дня два, пока не убедились, что проблема именно в этом. Нет, он не совсем зависал, но производительность отдельно взятого ядра падала во много раз. Т.е. 15 потоков - нормально, запускается 16й - все потоки тормозят, их становится все больше и больше, и хост заддосивается активными пользователями.

Еще раз - настоятельно НЕ рекомендую включать HT на сервере БД.
Часовой пояс GMT +3, время: 21:19.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.