Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Операционные системы / Operating systems (https://forum.zone-game.info/forumdisplay.php?f=32)
-   -   Meltdown/Spectre/MDS performance (https://forum.zone-game.info/showthread.php?t=42902)

n3k0nation 27.01.2018 16:03

Meltdown/Spectre/MDS performance
 
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...7cc83fefb8d537
https://git.kernel.org/pub/scm/linux...422eea71d473e0

Порядок действий на линупсах примерно такой:
  • Редактируем 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, ну, либо можно не включать.

Ashtone Grey 01.02.2018 02:07

Re: Meltdown/Spectre performance
 
Я вообще ни слова не понял конечно, но это хороший совет. Как перейду на 10-ку (году в 20-м), сразу воспользуюсь.

Evas 02.02.2018 15:38

Re: Meltdown/Spectre performance
 
Цитата:

Сообщение от n3k0nation (Сообщение 429890)
Недавно мне в репы прилетело новое ядро с патчем на мелтдаун и спектру. Так как исправление данных дыр сжирает от 20% до 50% производительности на старых интел процах (ниже скайлейка), то оно ненужно (кроме того, это должно быть исправлено на аппаратном уровне, а сейчас мы имеем кучу костылей, которые убивают огромный процент перформанса).
К тому же, данные уязвимости актуальны только на серверах с виртуализацией, для домашних хомяков или серверов без виртуализации, это просто является потерей производительности.

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

Порядок действий на линупсах примерно такой:
  • Редактируем 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 дебианом и там модифицированное ядро, где активированы патчи для фикса уязвимости.

Zubastic 02.02.2018 16:26

Re: Meltdown/Spectre performance
 
Написал простенький батник для ленивых:
Код:

@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


Evas 04.02.2018 14:49

Re: Meltdown/Spectre performance
 
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 соответственно.


Ashtone Grey 05.02.2018 07:20

Re: Meltdown/Spectre performance
 
https://i.vimeocdn.com/portrait/4434812_300x300https://image.prntscr.com/image/cbw5...hv0pTroHsw.jpg

Амуде, ну почему, должны же были соснуть только интелофаги, за что ты так со мной, где я теперь найду пару тысяч рублей на новый процессор чтобы 40 ядер и всё остальное как ты там умеешь, чтобы даже с этой новой шляпой у тебя не лагало.

Evas 14.02.2018 12:01

Re: Meltdown/Spectre performance
 
Ещё более интересные новости:

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

https://mariadb.org/myisam-table-scan-performance-kpti/

n3k0nation 15.02.2018 01:25

Re: Meltdown/Spectre performance
 
Evas, это все наблюдается не только в базах данных, в любых приложениях, которые хоть мальски часто используют любые сисколлы (многопоточка, фс, сеть, работа с памятью и т.д.).

Evas 15.02.2018 01:31

Re: Meltdown/Spectre performance
 
Цитата:

Сообщение от n3k0nation (Сообщение 430201)
Evas, это все наблюдается не только в базах данных, в любых приложениях, которые хоть мальски часто используют любые сисколлы (многопоточка, фс, сеть, работа с памятью и т.д.).

Это то понятно и так, но оказывается с Mysql всё немного иначе, вот о чём я...

n3k0nation 15.02.2018 01:34

Re: Meltdown/Spectre performance
 
Цитата:

Сообщение от Evas (Сообщение 430203)
Это то понятно и так, но оказывается с Mysql всё немного иначе, вот о чём я...

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

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

Меня больше интересует че так все взвыли и откуда такой хайп по этой всей херне. Все таки это актуально только для виртуальных серверов, причем только для хоста. В ВМках быдло-скрипта, в браузерах, уже давно накатили фиксы. И нахрена надо было криво-фиксы пихать во все ОС? Конечно же вын10/бубунта у меня виртуализирует, как ксен, 50 систем под никсами/выньсервер :redlol:


Текущее время: 02:05. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot