- Отключение Hyper-Threading debian 8
- Отключить гиперпоточность из Linux (нет доступа к BIOS)
- Скрипт для отключения гиперпоточности при запуске машины .
- Как это работает?
- Почему это работает?
- Отключить гиперпоточность в Ubuntu
- Вступление
- Ошибки Hyper-Threading в Intel Skylake и Kaby Lake:
- Этот ответ делится на три части:
- Отображение процессоров, когда Hyper-Threading выключен / включен
- Первый скрипт запускает Hyper Threading
- Второй скрипт запускает Hyper Threading
- Третий скрипт запускает Hyper Threading
- Скрипт Bash для автоматизации включения / выключения гиперпоточности
- Conky Сбои, если Hyper Threading отключена до его запуска
- Conky Code для отображения процента использования процессора и коэффициента загрузки
- 1С и Linux
- четверг, 13 сентября 2018 г.
- Отключение технологии Intel Hyper-Threading
Отключение Hyper-Threading debian 8
Гугл ничего толкового про отключение HT не дает. Отключить в биосе не предлагать, сервер арендованный. Можно ли это сделать как то программно?
нет, только в биосе
Нет, тк в этом нет смысла. Осиль taskset.
HT нельзя, можно через sysfs выключить лишние ядра.
Арендодатель не умеет входить в биос и отключать HT ?
Можно посмотреть какие 2 проца живут на одном ядре и отключить один из них, например:
echo 0 > /sys/devices/system/node/node0/cpu1/online
echo 0 > /sys/devices/system/node/node0/cpu3/online
Или автоматизировать это like Jack Perdue’s script
cat /sys/devices/system/cpu/cpu*/topology/thread_siblings_list | awk -F, ‘
Топикстартеру я бы посоветовал ткнуть арендодателя носом в данную ссылку, т.к. если программное окружение может быть уязвимо к выполнению произвольного кода на уровне CPU, то можно говорить об опасности для целостности данных в системе и других сюрпризах. Просто ткните носом в соответствующий пункт договора о качестве оказываемых услуг.
Ну заставьте вы ихнего инженера выключить галочку HT в серверном BIOS-е )).
Передать ядру параметр noht в загрузчике пробовал?
Насколько помню, технология HT еще со времен Pentium 4 Socket 478 показала себя не лучшим образом, то есть уже там были уязвимости.
Всем спасибо за ответы. Виртуальные ядра отключал, ожидаемого эффекта это не принесло. Пока забил. Цель была отключить виртуальные ядра и софт посадить, на 2 полноценных ядра, что бы им ничего не мешало. Но производительность осталась на прежнем уровне, посему забил на это дело. В Hetzer’e не охотно как то отвечают на просьбы сделать что-нибудь с железом. Поэтому биос изначально не рассматривал. Был бы конечно скайлейк или кабилейк можно было бы, пруфы привести которые вы скинули, но увы машины на 3770.
Источник
Отключить гиперпоточность из Linux (нет доступа к BIOS)
У меня есть система, запускающая приложение для финансовой торговли на удаленном объекте. У меня нет доступа к МОТ / DRAC, но мне нужно отключить гиперпоточность. Система работает на шестиъядерных процессорах Intel Westmere 3,33 ГГц X5680. Я могу перезагрузиться, но хочу убедиться, что система не поддерживает гиперпоточность из-за проблем с производительностью. Есть ли чистый способ сделать это изнутри Linux?
Редактировать: noht директива, добавленная в командную строку загрузки ядра, не работает. То же самое для RHEL.
Вы можете сделать это во время выполнения, если хотите. Я нашел хорошее решение, описанное здесь: http://www.absolutelytech.com/2011/08/01/how-to-disable-cpu-cores-in-linux/
Шаг 1: Определите процессоры Linux, которые вы хотите отключить:
Ищите процессоры, которые имеют одинаковый «идентификатор ядра», вы хотите отключить одну из каждой пары.
Шаг 2: Отключить процессоры с гиперпоточностью (в моем случае последние четыре из 8 «процессоров», которые видел Linux)
Вы можете настроить скрипт, который вы запускаете сразу после запуска системы.
Скрипт для отключения гиперпоточности при запуске машины .
Чтобы отключить гиперпоточность, я включаю скрипт на машине /etc/rc.local. Он не совсем чистый, но простой в установке, независимый от архитектуры процессора и должен работать на любом современном дистрибутиве Linux.
Как это работает?
Информация о ядре Linux и элементы управления доступны в виде файлов в каталоге / sys в современных дистрибутивах Linux. Например:
/ sys / devices / system / cpu / cpu3 содержит информацию о ядре и элементы управления для логического процессора 3.
cat / sys / devices / system / cpu / cpu3 / topology / core_id покажет номер ядра, которому принадлежит этот логический процессор.
echo «0»> / sys / devices / system / cpu / cpu3 / online позволяет отключить логический процессор 3.
Почему это работает?
Я не знаю точно, почему . но система стала более отзывчивой с отключенной гиперпоточностью (на моем ноутбуке i5 и массивных серверах Xeon с более чем 60 ядрами). Я предполагаю, что это связано с кэшем для каждого процессора, выделением памяти для каждого процессора, выделением планировщика процессора и сложными итерациями приоритетов процесса. Я думаю, что преимущества гиперпоточности перевешивают сложность создания планировщиков ЦП, которые знают, как их использовать.
Для меня проблема с гиперпоточностью такова: если я запущу столько потоков с интенсивным использованием процессора, сколько у меня логических ядер, у меня будут быстрые переключатели контекста для задач с интенсивным использованием процессора, но дорогие для фоновых задач, поскольку гиперпоточность полностью используется интенсивные задачи процессора. С другой стороны, если я запускаю столько потоков с интенсивным использованием процессора, сколько у меня физических ядер, у меня не будет переключений контекста на эти задачи и быстрых переключений контекста для фоновых задач. Вроде бы хорошо, но фоновые задачи найдут свободные логические процессоры и будут работать почти сразу. Как будто они в реальном времени (неплохо -20).
В первом сценарии гиперпоточность — это пустяки, фоновые задачи будут использовать дорогие переключатели контекста, потому что я увеличил гиперпоточность при обычной обработке. Второе недопустимо, поскольку до 50% мощности моего процессора отдается приоритет фоновым задачам.
«Интенсивная загрузка процессора», о которой я говорю, — это интеллектуальный анализ данных и серверы авторизации (моя работа). Блендер рендеринг в дешевых компьютерах и кластерах (для эскиза моего будущего дома).
Кроме того, это догадки.
У меня такое впечатление, что лучше, но может и нет.
Источник
Отключить гиперпоточность в Ubuntu
Я работаю на сервере Ubuntu 16.04. Я вижу, что Hype Threading включен, когда я использую команду lscpu.
Я хочу отключить это. Я прошел форумы Ubuntu и здесь и здесь .
Это хорошие дискуссии, почему гиперпоточность может не быть хорошей. Но нет окончательного решения о том, как его отключить.
Кто-нибудь может дать инструкции по отключению гиперпоточности? Благодарю .
Вступление
Это интересный вопрос. Наверное, один из самых интересных за месяцы лично для меня. Как и OP, в моем старом BIOS нет опции отключения Hyper Threading (изобретена в 2012 году, обновлена в 2016 году или около того).
Ошибки Hyper-Threading в Intel Skylake и Kaby Lake:
Любой, кто использует процессоры Intel Skylake или Kaby Lake , должен прочитать отчеты об ошибках в Hyper Threading, которые появились пару месяцев назад. В этой истории о регистрации в Великобритании рассказывается, как разработчики Debian обнаружили, как Hyper Threading может привести к сбою и повреждению компьютера.
За последний год в Ask Ubuntu сообщалось о многочисленных проблемах со Skylake, и возникает вопрос, как определить, какие проблемы могли быть вызваны ошибками Hyper Threading.
Этот ответ делится на три части:
- Отображение процессоров, когда Hyper-Threading выключен / включен
- Скрипт Bash для автоматизации включения / выключения гиперпоточности
- Conky Сбои, если Hyper Threading отключена до его запуска
Отображение процессоров, когда Hyper-Threading выключен / включен
Ниже вы можете увидеть загрузку ЦП, когда гиперпоточность отключена и выполняется нагрузочный тест ЦП. Примерно через 10 секунд тот же сценарий повторяется с включенной гиперпоточностью. Наконец, через 10 секунд скрипт запускается с отключенной гиперпоточностью:
Дисплей разделен на две части:
- В левой половине окна терминала вызывается скрипт set-hyper-threading с параметром 0 (выкл) и затем 1 ( вкл ).
- В правой половине conky отображается загрузка ЦП в процентах от 1 до 8.
Первый скрипт запускает Hyper Threading
При первом запуске скрипта номера ЦП 2, 4, 6 и 8 (по словам Конки) заморожены на 3%, 2%, 2% и 2%. Во время стресс-теста номера ЦП 1, 3, 5 и 7 достигают 100%.
Топология ЦП отображается с отключенной гиперпоточностью, и сообщается только о четырех ядрах:
Второй скрипт запускает Hyper Threading
Во второй раз, когда скрипт запускается, Hyper-Threading включается, и все процессорные числа 1-8 увеличиваются до 100% во время стресс-теста.
Топология ЦП отображается с включенной гиперпоточностью и сообщается только о четырех ядрах плюс и четырех виртуальных ядрах:
Третий скрипт запускает Hyper Threading
Обратите внимание, как после завершения второго сценария процессоры 2, 4, 6 и 8 работают на холостом ходу 4%, 2%, 3%, 4%. Это важно, потому что в третьем тесте отключение Hyper-Threading показывает процент загрузки процессора, зафиксированный на уровне 4%, 2%, 3%, 4%, а не 3%, 2%, 2% и 2% от первого теста.
Поэтому отключение гиперпоточности просто останавливает виртуальные процессоры в текущем состоянии.
Также обратите внимание, что независимо от того, включен ли Hyper-Threading или нет, сценарий по-прежнему отображает «Hyper-Threading Supported».
Скрипт Bash для автоматизации включения / выключения гиперпоточности
При просмотре приведенного ниже сценария имейте в виду, что Conky нумерует ЦП от 1 до 8, а Linux нумерует ЦП от 0 до 7.
ПРИМЕЧАНИЕ . Программа stress встроена во все системы Debian, производная от Ubuntu. Поэтому вам не нужно скачивать и устанавливать пакеты для запуска этого скрипта в Ubuntu.
Если у вас двухъядерный процессор, вам нужно удалить (или закомментировать # ) строки, управляющие процессорами с номерами 5 и 7.
Благодарим Hi-Angel за grep «» /sys/devices/system/cpu/cpu*/topology/core_id отображение строки топологии процессора.
Conky Сбои, если Hyper Threading отключена до его запуска
Чтобы получить максимально возможную загрузку процессоров 2, 4, 6, 8, я попытался отключить Hyper-Threading во время загрузки. Я использовал этот скрипт для этого:
Однако происходит conky сбой при сегментации, если при запуске гиперпоточность отключена. Таким образом, я должен был закомментировать четыре @reboot строки в сценарии.
Conky Code для отображения процента использования процессора и коэффициента загрузки
Если вы заинтересованы в настройке подобного дисплея в Conky, вот соответствующий фрагмент кода:
ПРИМЕЧАНИЕ. Приведенный выше код Nvidia никогда не тестировался, потому что у меня еще нет графического процессора Nvidia, работающего под Ubuntu. Любой год скоро сейчас 🙂
Последние ядра поддерживают параметр ядра maxcpus .
Это позволяет вам установить количество процессоров на количество физических ядер. Это может быть полезно для смягчения угроз, вызванных уязвимостями MDS на процессорах Intel из семейства 6.
Как:
с привилегиями sudo (root) откройте / etc / default / grub в вашем любимом текстовом редакторе.
Найдите строку, которая начинается с GRUB_CMDLINE_LINUX_DEFAULT =
и добавьте maxcpus = n к любым существующим параметрам ядра, таким как общие параметры тихого всплеска (где n = количество физических ядер, которое имеет ваш процессор.
Например, на моем надежном двухъядерном процессоре Intel (R) Core (TM) i3-3220 с тактовой частотой 3,30 ГГц с гиперпоточностью я добавил maxcpus = 2, чтобы отключить гиперпоточность во время загрузки.
Сохраните файл, затем введите команду sudo update-grub и перезагрузите компьютер.
Вы можете подтвердить успех, введя команду, lscpu | grep «per core» которая должна выдать вывод, подобный этому:
Источник
1С и Linux
Пишу для себя, чтобы не забыть как делал. 95 % рабочее. На комментарии отвечаю, когда увижу.
четверг, 13 сентября 2018 г.
Отключение технологии Intel Hyper-Threading
1. Выключить в BIOS режим HT (Hyperthreading) процессора
2. Выключить в BIOS режимы энергосбережения процессора «Intel SpeedStep» и «C-State»
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
.
.
$ lscpu —extended
CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE MAXMHZ MINMHZ
0 0 0 0 0:0:0:0 yes 4200,0000 800,0000
1 0 0 1 1:1:1:0 yes 4200,0000 800,0000
2 0 0 2 2:2:2:0 yes 4200,0000 800,0000
3 0 0 3 3:3:3:0 yes 4200,0000 800,0000
4 0 0 0 0:0:0:0 yes 4200,0000 800,0000
5 0 0 1 1:1:1:0 yes 4200,0000 800,0000
6 0 0 2 2:2:2:0 yes 4200,0000 800,0000
7 0 0 3 3:3:3:0 yes 4200,0000 800,0000
#!/bin/bash
for cpunum in $(cat /sys/devices/system/cpu/cpu*/topology/thread_siblings_list | cut -s -d, -f2- | tr ‘,’ ‘\n’ | sort -un)
do
echo 0 > /sys/devices/system/cpu/cpu$cpunum/online
done
sudo sh htdisable.sh
CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE MAXMHZ MINMHZ
0 0 0 0 0:0:0:0 yes 4200,0000 800,0000
1 0 0 1 1:1:1:0 yes 4200,0000 800,0000
2 0 0 2 2:2:2:0 yes 4200,0000 800,0000
3 0 0 3 3:3:3:0 yes 4200,0000 800,0000
4 — — — . no 4200,0000 800,0000
5 — — — . no 4200,0000 800,0000
6 — — — . no 4200,0000 800,0000
7 — — — . no 4200,0000 800,0000
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-3
Off-line CPU(s) list: 4-7
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
$ echo 0 | sudo tee /sys/devices/system/cpu/cpu3/online
$ echo 0 | sudo tee /sys/devices/system/cpu/cpu2/online
$ echo 0 | sudo tee /sys/devices/system/cpu/cpu1/online
$ echo 1 | sudo tee /sys/devices/system/cpu/cpu3/online
$ echo 2 | sudo tee /sys/devices/system/cpu/cpu2/online
$ echo 3 | sudo tee /sys/devices/system/cpu/cpu1/online
Источник