Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Meltdown/Spectre/MDS performance
#1
Meltdown/Spectre.
Недавно мне в репы прилетело новое ядро с патчем на мелтдаун и спектру. Так как исправление данных дыр сжирает от 20% до 50% производительности на старых интел процах (ниже скайлейка), то оно ненужно (кроме того, это должно быть исправлено на аппаратном уровне, а сейчас мы имеем кучу костылей, которые убивают огромный процент перформанса).
К тому же, данные уязвимости актуальны только на серверах с виртуализацией, для домашних хомяков или серверов без виртуализации, это просто является потерей производительности.



Версии ядра популярных дистрибутивов, начиная с которых присутствуют патчи для устранения уязвимостей:
Код:
RHEL 6/ CentOS 6 - 2.6.32-696.18.7
RHEL 7/ CentOS 7 - 3.10.0-693.11.6
Debian 7 - 3.2.0-5-amd64
Debian 8 - 3.16.0-5-amd6
Debian 9 - 4.9.0-5-amd64
Ubuntu 14.04 - 3.13.0-139-generic
Ubuntu 16.04 - 4.4.0-109-generic/ 4.13.0-26-generic
Ubuntu 17.10 - 4.13.0-25-generic

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

Для того чтобы проверить вашу систему берём специальный bash скрипт:
https://github.com/speed47/spectre-meltdown-checker

Сохраняем к себе на сервер и выполняем (от root):
Код:
# sh spectre-meltdown-checker.sh

Если ваш сервер уязвим, то будет написано VULNERABLE, если нет, то NOT VULNERABLE соответственно.

Пример

Немного покопав гит кернеля линупса, были найдены замечательные коммиты, которые через передачу параметров кернелю выключают "чудо-патчи" (актуально для ванильных ядер):
https://git.kernel.org/pub/scm/linux/ker...3fefb8d537
https://git.kernel.org/pub/scm/linux/ker...ea71d473e0

Порядок действий на линупсах примерно такой:
  • Редактируем grub.cfg для передачи параметров:
    Код:
    $ su
    # nano /etc/default/grub
  • Далее вносим изменения в GRUB_CMDLINE_LINUX_DEFAULT, должно получится чето типа этого:
    Код:
    GRUB_CMDLINE_LINUX_DEFAULT="pti=off nospectre_v2"
    Также, можно вместо nospectre_v2 заюзать:
    Код:
    spectre_v2=off
  • Сохраняем, выходим и ре-генерим скрипты груба:
    Код:
    # update-grub

Для винды сносим данные KB и больше никогда их не ставим:
Код:
KB4056892 <-- W10 / Server 2016
KB4056891 <-- W10
KB4056890 <-- W10 / Server 2016
KB4056888 <-- W10
KB4056893 <-- W10
KB4056898 <-- W8 / Server 2012 / W8 Embedded
KB4056895 <-- W8 / Server 2012 / W8 Embedded
KB4056897 <-- W7 / Server 2008 / W7 Embedded
KB4056894 <-- W7 / Server 2008 / W7 Embedded


Microarchitectural Data Sampling.
Новая уязвимость в Intel камнях, патчи под Linux уже подъехали. Галактико в опасностэ! Впрочем, с помощью данных уязвимостей на самом деле можно сделать интересные вещи. Но мне, как Неуловимому Джо, оно нахрен не нужно на домашних машинах, особенно с учетом еще одних потерь производительности в виде 30-40 процентов.

Для отключения достаточно передать несколько параметров в ядро:
Код:
mds=off mitigations=off

По мауналу выше втыкаем эти параметры в GRUB_CMDLINE_LINUX_DEFAULT, который лежит в /etc/default/grub и перегенериваем скрипты загрузчика update-grub.
Не забываем включить назад HT, ну, либо можно не включать.
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Ответ
#2
Я вообще ни слова не понял конечно, но это хороший совет. Как перейду на 10-ку (году в 20-м), сразу воспользуюсь.
[Изображение: bce0e5b5aa7d.jpg]
Ответ
#3
n3k0nation Написал:Недавно мне в репы прилетело новое ядро с патчем на мелтдаун и спектру. Так как исправление данных дыр сжирает от 20% до 50% производительности на старых интел процах (ниже скайлейка), то оно ненужно (кроме того, это должно быть исправлено на аппаратном уровне, а сейчас мы имеем кучу костылей, которые убивают огромный процент перформанса).
К тому же, данные уязвимости актуальны только на серверах с виртуализацией, для домашних хомяков или серверов без виртуализации, это просто является потерей производительности.

Немного покопав гит кернеля линупса, нашел замечательные коммиты, которые через передачу параметров кернелю выключают "чудо-патчи":
https://git.kernel.org/pub/scm/linux/ker...3fefb8d537
https://git.kernel.org/pub/scm/linux/ker...ea71d473e0

Порядок действий на линупсах примерно такой:
  • Редактируем grub.cfg для передачи параметров:
    Код:
    $ su
    # nano /etc/default/grub
  • Далее вносим изменения в GRUB_CMDLINE_LINUX_DEFAULT, должно получится чето типа этого:
    Код:
    GRUB_CMDLINE_LINUX_DEFAULT="pti=off nospectre_v2"
    Также, можно вместо nospectre_v2 заюзать:
    Код:
    spectre_v2=off
  • Сохраняем, выходим и ре-генерим скрипты груба:
    Код:
    # update-grub

Для винды сносим данные KB и больше никогда их не ставим:
Код:
KB4056892 <-- W10 / Server 2016
KB4056891 <-- W10
KB4056890 <-- W10 / Server 2016
KB4056888 <-- W10
KB4056893 <-- W10
KB4056898 <-- W8 / Server 2012 / W8 Embedded
KB4056895 <-- W8 / Server 2012 / W8 Embedded
KB4056897 <-- W7 / Server 2008 / W7 Embedded
KB4056894 <-- W7 / Server 2008 / W7 Embedded

OVH на свои образы накатывают эти патчи если что. Только что вот взяли сервер с 9 дебианом и там модифицированное ядро, где активированы патчи для фикса уязвимости.
Ответ
#4
Написал простенький батник для ленивых:
Код:
@echo off
echo Delete Updates...
echo Clearing W10 Updates:
echo Delete KB4056894
start /w wusa.exe /uninstall /kb:4056892  /quiet /norestart
echo Delete KB4056897
start /w wusa.exe /uninstall /kb:4056891  /quiet /norestart
echo Delete KB4056894
start /w wusa.exe /uninstall /kb:4056890  /quiet /norestart
echo Delete KB4056897
start /w wusa.exe /uninstall /kb:4056888  /quiet /norestart
echo Delete KB4056894
start /w wusa.exe /uninstall /kb:4056893  /quiet /norestart
echo Clearing W8 Updates:
echo Delete KB4056898
start /w wusa.exe /uninstall /kb:4056898  /quiet /norestart
echo Delete KB4056895
start /w wusa.exe /uninstall /kb:4056895 /quiet /norestart
echo Clearing W7 Updates:
echo Delete KB4056897
start /w wusa.exe /uninstall /kb:4056897 /quiet /norestart
echo Delete KB4056894
start /w wusa.exe /uninstall /kb:4056894 /quiet /norestart
[Изображение: 4e38c909fcd08c5fcdf363b54a62.png]
Ответ
#5
n3k0nation, дополните первый пост, информация полезная и пригодится людям)

Список уязвимых процессоров:




Версии ядра популярных дистрибутивов, начиная с которых присутствуют патчи для устранения уязвимостей:

Код:
RHEL 6/ CentOS 6 - 2.6.32-696.18.7
RHEL 7/ CentOS 7 - 3.10.0-693.11.6
Debian 7 - 3.2.0-5-amd64
Debian 8 - 3.16.0-5-amd6
Debian 9 - 4.9.0-5-amd64
Ubuntu 14.04 - 3.13.0-139-generic
Ubuntu 16.04 - 4.4.0-109-generic/ 4.13.0-26-generic
Ubuntu 17.10 - 4.13.0-25-generic

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

Для того чтобы проверить вашу систему берём специальный bash скрипт:
https://github.com/speed47/spectre-meltdown-checker

Сохраняем к себе на сервер и выполняем (от root):
Код:
sh spectre-meltdown-checker.sh

Если ваш сервер уязвим, то будет написано VULNERABLE, если нет, то NOT VULNERABLE соответственно.

Пример
Ответ
#6
[Изображение: 4434812_300x300][Изображение: cbw52QTBQ1mWhv0pTroHsw.jpg]

Амуде, ну почему, должны же были соснуть только интелофаги, за что ты так со мной, где я теперь найду пару тысяч рублей на новый процессор чтобы 40 ядер и всё остальное как ты там умеешь, чтобы даже с этой новой шляпой у тебя не лагало.
[Изображение: bce0e5b5aa7d.jpg]
Ответ
#7
Ещё более интересные новости:

Разработчики СУБД MariaDB предупредили о существенном снижении производительности хранилища MyISAM при использовании ядра Linux с патчами KPTI, блокирующими уязвимость Meltdown. Замедление операций сканирования строк в MyISAM после применения патчей KPTI составляет около 40%, а при отсутствии поддержки PCID может достигать 90%. Для избавления от подобного эффекта требуется полный редизайн MyISAM. Судя по всему это касается всех версий mysql и не только форков...

https://mariadb.org/myisam-table-scan-performance-kpti/
Ответ
#8
Evas, это все наблюдается не только в базах данных, в любых приложениях, которые хоть мальски часто используют любые сисколлы (многопоточка, фс, сеть, работа с памятью и т.д.).
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Ответ
#9
n3k0nation Написал:Evas, это все наблюдается не только в базах данных, в любых приложениях, которые хоть мальски часто используют любые сисколлы (многопоточка, фс, сеть, работа с памятью и т.д.).
Это то понятно и так, но оказывается с Mysql всё немного иначе, вот о чём я...
Ответ
#10
Evas Написал:Это то понятно и так, но оказывается с Mysql всё немного иначе, вот о чём я...

В смысле иначе?
БД играется с памятью? - Играется!
Юзает сокеты? - Юзает!
Пишет/читает с диска? - Да!

Вот и 50% перформанса, как минимум, улетает. Как я и писал в начальном посте. Постгре примерно в той же ситуации находится. Впрочем, как и любое другое приложение.

Меня больше интересует че так все взвыли и откуда такой хайп по этой всей херне. Все таки это актуально только для виртуальных серверов, причем только для хоста. В ВМках быдло-скрипта, в браузерах, уже давно накатили фиксы. И нахрена надо было криво-фиксы пихать во все ОС? Конечно же вын10/бубунта у меня виртуализирует, как ксен, 50 систем под никсами/выньсервер :redlol:
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 4 Гость(ей)